어떻게 라인 안전 문제를 해결합니까

1894 단어 android

 2     。
  ,       ,                           ,                     ,         ,     sig_atomic_t volatile。
  ,          ,    ,   。              
       ,                   ,           ,Java           ,    。
(1)synchronized   
     
 Java            synchronized   ,                     。  synchronized                    。
      
*synchronized       
           
public synchronized void 
method(){
                
//do 
something
            
}
          
  :    synchronized       ,                     。           ,             。  。              ,                   ,                   。
           
    :
package newthread;

public class TestSync {
    
public static void main(String[] args) {
    
    MyThread1 my1=new MyThread1(1);
    
    MyThread1 my2=new MyThread1(3);
    
    my1.start();
        
my2.start();
    }
}
class MyThread1 extends 
Thread{
    private int val;
    public 
MyThread1(int v){
        
val=v;
    }
    public synchronized void 
printVal(int v){
        for(int 
i=0;i<100;i++){
            
System.out.print(v);
        
}
    }
    public void 
run(){
        
printVal(val);
    }
}
    
       1 3     , 1 3         printVal  ,         。    synchronized               ,           ,                  。synchronized           :
synchronized(MyThread.class){}
    
package 
newthread;

public class TestSync_2 {
    public static 
void main(String[] args) {
        MyThread_2 
my1=new MyThread_2(1);
        
my1.start();
        MyThread_2 my2=new 
MyThread_2(2);
        
my2.start();
    }
}
    class MyThread_2 
extends Thread{
        private int 
val;
        public MyThread_2(int 
v){
            
val=v;
        }
    
    public void printVal(int v){
    
        
synchronized(MyThread_2.class){
        
        for(int 
i=0;i<100;i++){
            
        System.out.print(v);
 

좋은 웹페이지 즐겨찾기