zoukankan      html  css  js  c++  java
  • java多线程编程——线程同步之同步代码块

    编写多线程程序时,一定需要注意安全问题。

    多线程安全问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行一部分(未执行完),此时另一个线程参与进来,导致了共享数据的错误。

    解决办法:当多条语句操作共享数据的时,只能先让一个线程执行完,其它线程不能参与。

     同步前提:

    1.必须要有两个或者两个以上的线程

    2.必须是多个线程使用同一个锁

    //以下num 为th1,th2,th3共享数据,因此,操作num的地方,必须使用同步机制
    public class Ticket implements Runnable{
        int num=30;
        public void run(){
            while(num>0){
                synchronized(""){
                    System.out.println(Thread.currentThread().getName()+":ticket-"+num);
                    num--;    
                }
                
                try{
                    Thread.sleep(1000);
                }catch(Exception e){
                    e.printStackTrace();
                }
                
            }
        }
        public static void main(String []args){
            Ticket t1=new Ticket();
            Thread th1=new Thread(t1);
            Thread th2=new Thread(t1);
            Thread th3=new Thread(t1);
            th1.start();
            th2.start();
            th3.start();
        }
    }
  • 相关阅读:
    算法第三章上机实践报告
    算法第3章作业
    算法第二章上机实验报告
    对二分法的理解和关于结对编程的看法
    轮播图终极版
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    作业01
  • 原文地址:https://www.cnblogs.com/personal/p/6337972.html
Copyright © 2011-2022 走看看