打字猴:1.700449809e+09
1700449809
1700449810 class MultiThread implements Runnable{
1700449811
1700449812 int a=0;
1700449813
1700449814 @Override
1700449815
1700449816 public void run(){
1700449817
1700449818 //同步代码块,保证原子操作
1700449819
1700449820 synchronized(””){
1700449821
1700449822 //自增
1700449823
1700449824 a++;
1700449825
1700449826 try{
1700449827
1700449828 //线程休眠0.1秒
1700449829
1700449830 Thread.sleep(100);
1700449831
1700449832 }catch(InterruptedException e){
1700449833
1700449834 e.printStackTrace();
1700449835
1700449836 }
1700449837
1700449838 //自减
1700449839
1700449840 a—;
1700449841
1700449842 String tn=Thread.currentThread().getName();
1700449843
1700449844 System.out.println(tn+”:a=”+a);
1700449845
1700449846 }
1700449847
1700449848 }
1700449849
1700449850 }
1700449851
1700449852 MultiThread实现了Runnable接口,具备多线程能力,其中run方法中加上了synchronized代码块,表示内部是原子逻辑,它会先自增然后再自减少,按照synchronized同步代码块的规则来处理,此时无论启动多少个线程,打印出来的结果都应该是a=0,但是如果有一个正在执行的线程被stop,就会破坏这种原子逻辑,代码如下:
1700449853
1700449854 public static void main(String[]args){
1700449855
1700449856 MultiThread t=new MultiThread();
1700449857
1700449858 Thread t1=new Thread(t);
[ 上一页 ]  [ :1.700449809e+09 ]  [ 下一页 ]