传统线程互斥技术Synchronized 02
来源:互联网 发布:淘宝评价完了怎么截图 编辑:程序博客网 时间:2024/06/01 03:59
package cn.itcast.heima2;
public class ThaditionalThreadSynchronized {
public static void main(String[] args) {
new ThaditionalThreadSynchronized().init();
}
private void init(){
final OutPuter outputer = new OutPuter();
//在静态方法中不能new内部内的实例对象
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.outPut("zhangxiaoxiang");
}
}
}).start();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.outPut2("lihongming");
}
}
}).start();
}
static class OutPuter{
public void outPut(String name){
int len=name.length();
synchronized(OutPuter.class){
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
public synchronized void outPut2(String name){
int len=name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
public static synchronized void outPut3(String name){
int len=name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
public class ThaditionalThreadSynchronized {
public static void main(String[] args) {
new ThaditionalThreadSynchronized().init();
}
private void init(){
final OutPuter outputer = new OutPuter();
//在静态方法中不能new内部内的实例对象
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.outPut("zhangxiaoxiang");
}
}
}).start();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.outPut2("lihongming");
}
}
}).start();
}
static class OutPuter{
public void outPut(String name){
int len=name.length();
synchronized(OutPuter.class){
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
public synchronized void outPut2(String name){
int len=name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
public static synchronized void outPut3(String name){
int len=name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
0 0
- 传统线程互斥技术Synchronized 02
- 传统线程互斥synchronized
- Java—传统线程互斥技术synchronized
- 【java并发】传统线程互斥技术—synchronized
- 传统线程互斥技术
- 传统线程互斥技术
- JAVA 并发编程-传统线程互斥技术(Synchronized)(三)
- 传统线程互斥技术初步-synchronized常用的几个锁对象
- JAVA 并发编程-传统线程互斥技术(Synchronized)(三)
- JAVA 并发编程-传统线程互斥技术(Synchronized)(三)
- 【Java多线程与并发库】03 传统线程互斥技术 synchronized
- 【张孝祥并发课程笔记】02:传统线程互斥技术
- 传统线程互斥技术 ------ 实例
- 传统线程互斥技术----实现
- 传统线程互斥技术(三)
- 3-传统线程互斥技术
- 传统线程互斥技术Synchronized01
- (3)传统线程互斥技术 synchronized 经典解析。【线程同步】 外加【内部类与外部类 】
- Android:数据存储和界面展示
- win10使用01:安装Sql Server 2008 r2的注意事项
- 关于Canvas.drawText中xy位置问题
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持
- virtualbox安装centos出错
- 传统线程互斥技术Synchronized 02
- 快速理解RequireJs
- Android开发:网络编程
- Go 语言条件语句和循环语句
- Android开发之获取手机网络状态及网络是否连接
- Rocksdb源码剖析一----Rocksdb概述与基本组件
- 深度学习概述
- 高性能IO模型浅析
- Go 语言函数