Hello! 欢迎来到小浪资源网!



线程间的同步和通信


附加内容:

线程间的同步与通信
问题: 线程在访问共享数据时可能会互相干扰。

解决方案:
同步方法

synchronized void synchronizedmethod() {     // código sincronizado }  

同步块:

synchronized (this) {     // código sincronizado }  

沟通示例:

线程之间使用wait()、notify()和notifyall()进行通信:

class SharedResource {     private boolean flag = false;      synchronized void produce() {         while (flag) {             try {                 wait();             } catch (InterruptedException e) {                 e.printStackTrace();             }         }         System.out.println("Producing...");         flag = true;         notify();     }      synchronized void consume() {         while (!flag) {             try {                 wait();             } catch (InterruptedException e) {                 e.printStackTrace();             }         }         System.out.println("Consuming...");         flag = false;         notify();     } }  public class ThreadCommunication {     public static void main(String[] args) {         SharedResource resource = new SharedResource();          Thread producer = new Thread(resource::produce);         Thread consumer = new Thread(resource::consume);          producer.start();         consumer.start();     } }  

结论

  • Java 中的多线程编程允许您创建更高效​​的应用程序,尤其是在多核系统上。
  • 使用同步正确管理对共享资源的访问非常重要。
  • thread 类方法和 runnable 接口是处理多任务的强大工具。

线程间的同步和通信

相关阅读