线程如何实现同步和通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程如何实现同步和通讯相关的知识,希望对你有一定的参考价值。

  线程同步:

    当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。

  实现同步机制的方法:

  1:同步代码块

    Synchronized(同一个数据){}  同一个数据:就是N条线程同时访问一个数据

  2:public Synchronized  数据返回类型  方法名(){}

    就是使用Synchronized 来修饰某个方法,则该方法称为同步方法。对于同步方法而言,无序指定同步监视器,同步方法的同步监视器是this 也就是该对象的本身(这里指的对象是调用该同步方法的对象)通过使用同步方法,可非常方便的将某类变成线程安全的类。

    该类的对象可以被多个线程安全的访问;

    每个线程调用该对象的任意方法之后,都将得到正确的结果

    每个线程调用该对象的任意方法之后,该对象状态依然保持合理状态

    注:Synchronized关键字可以修饰方法,也可以修饰代码块,但不能修饰构造器,属性等。

 

以上是关于线程如何实现同步和通讯的主要内容,如果未能解决你的问题,请参考以下文章

理解SynchronizationContext,如何在Winform里面跨线程访问UI控件

线程高级应用-心得5-java5线程并发库中Lock和Condition实现线程同步通讯

java 如何实现多线程之间的通讯和协作?

java多线程有几种实现方法?线程之间如何同步

详解线程同步和线程互斥,Java如何实现线程同步和互斥

Java 面试题