美文网首页
java线程同步方法论

java线程同步方法论

作者: 千千雪人 | 来源:发表于2021-12-23 15:44 被阅读0次

    线程同步

    • 在同一个时间段内只保证有一个线程进入到同步的方法体内执行,但是不能保证其它线程到非同步的方法里执行操作,要想保证两下方法都加锁同步
    • 当有多个方法都加了synchronized锁的时候,多个线程在同一时间内只能有一个synchronized方法被一个线程执行

    实验代码

    package com.kakarote.crm.common;
    
    import lombok.SneakyThrows;
    import org.apache.commons.collections4.list.TreeList;
    
    import java.util.*;
    
    public class Test {
        public static void main (String[] args) throws InterruptedException {
            Thrett t = new Thrett();
            Thread th = new Thread(t);
            th.start();
    
            t.m2();
            System.out.println(t.b);
        }
    }
    
    class Thrett implements Runnable{
        public int b = 1000;
    
        public  synchronized void m1() throws InterruptedException {
    //        b=5000;
            System.out.println("m1-来了");
            Thread.sleep(5000);
            System.out.println("m1----"+b);
        }
        public synchronized void m2() throws InterruptedException {
            Thread.sleep(2000);
            System.out.println("m2-来了");
            b=2000;
            System.out.println("m2----"+b);
        }
        @SneakyThrows
        @Override
        public void run() {
            m1();
    
        }
    }
    
    

    java wait与sleep的区别

    • wait是object的类
    • sleep是Thread的类
    • wait时别的线程可以访问锁定的对象
    • sleep时别的线程不能访问锁定的对象

    相关文章

      网友评论

          本文标题:java线程同步方法论

          本文链接:https://www.haomeiwen.com/subject/ygwhqrtx.html