线程间的同步和通信

ID:19321 / 打印

附加内容:

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

解决方案:
同步方法

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 接口是处理多任务的强大工具。

线程间的同步和通信

上一篇: Java 中@Override 的作用是什么?
下一篇: 多线程 Cap 编程

作者:admin @ 24资源网   2024-11-26

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。