千家信息网

Java多线程同步synchronized代码分享

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要讲解了"Java多线程同步synchronized代码分享",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java多线程同步synchron
千家信息网最后更新 2025年01月16日Java多线程同步synchronized代码分享

这篇文章主要讲解了"Java多线程同步synchronized代码分享",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java多线程同步synchronized代码分享"吧!

单线程是安全的,因为线程只有一个,不存在多个线程抢夺同一个资源

代码例子:

public class SingleThread {        int num=10;        public void add(){                while(num<13){                        num++;                        try{                                Thread.sleep(1000);                        }                        catch(Exception e){                                System.out.println("中断");                        }                        System.out.println(num);                }        }        public static void main(String[] args){                Thread thread = Thread.currentThread(); //获取当前运行的线程对象                thread.setName("单线程"); //线程重命名                System.out.println(thread.getName()+"正在运行");                SingleThread st=new SingleThread();                st.add();        }}

多线程安全,synchronized同步代码块

synchronized(对象){}; //同步代码块

synchronized 返回值 方法名(){}; //同步方法

class One {         int num=10;         public void add(){                 synchronized(this){ //同步代码块,同步方法也可以实现效果synchronized void add(){};                num++;          try {           Thread.sleep(1000);          } catch (InterruptedException e) {              System.out.println("中断");          }          System.out.println(num);          }         }        }        class Two implements Runnable{         One one = new One();         @Override         public void run() {                 one.add(); //调用add方法         }        }        public class Synch{         public static void main(String[] args) {                Two two = new Two();          Thread t1 = new Thread(two); //创建三个子线程          Thread t2 = new Thread(two);          Thread t3 = new Thread(two);          t1.start();          t2.start();          t3.start();         }}

注意:观察去除synchronized关键字的运行结果区别!

正常运行结果:

11
12
13

感谢各位的阅读,以上就是"Java多线程同步synchronized代码分享"的内容了,经过本文的学习后,相信大家对Java多线程同步synchronized代码分享这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0