package 对象及变量的并发访问2;
/**
* 一半异步 一半同步
* 在synchronized中就同步,不在就异步。
*/
class TaskT2240{
public void doLongTimeTask(){
for (int i=0;i<100;++i){
System.out.println("nosynchronized threadName="+Thread.currentThread().getName()+
"i="+(i+1));
}
System.out.println("");
synchronized (this){
for (int i=0;i<100;++i){
System.out.println("synchronized threadName="+Thread.currentThread().getName()+
"i="+(i+1));
}
}
}
}
class MyThreadAT2240 extends Thread{
private TaskT2240 taskT2240;
public MyThreadAT2240(TaskT2240 taskT2240){
super();
this.taskT2240=taskT2240;
}
@Override
public void run() {
super.run();
taskT2240.doLongTimeTask();
}
}
class MyThreadBT2240 extends Thread{
private TaskT2240 taskT2240;
public MyThreadBT2240(TaskT2240 taskT2240){
super();
this.taskT2240=taskT2240;
}
@Override
public void run() {
super.run();
taskT2240.doLongTimeTask();
}
}
class RunT2240{
public RunT2240(){
TaskT2240 taskT2240=new TaskT2240();
MyThreadAT2240 at2240=new MyThreadAT2240(taskT2240);
at2240.start();
MyThreadBT2240 bt2240=new MyThreadBT2240(taskT2240);
bt2240.start();
}
}
public class T2204 {
public static void main(String[] args) {
RunT2240 runT2240=new RunT2240();
}
}
在synchronized中就同步,不在就异步——T2204
最新推荐文章于 2021-03-09 18:02:47 发布