线程之间的通信
一、为什么要线程通信? 1. 多个线程并发执行时, 在默认情况下CPU是 随机切换线程 的,当我们需要多个线程来 共同完成 一件任务, 并且我们希望他们 有规律 的执行, 那么多线程之间需要一些 协调通信 ,以此来帮我们达到 多线程共同操作一份数据 。 2.当然如果我们没有使用线程通信来使用多线程共同操作同一份数据的话,虽然可以实现, 但是在很大程度会造成多线程之间对同一共享变量的争夺,那样的话势必为造成很多错误和损失! 3.所以,我们才引出了线程之间的通信, 多线程之间的通信能够避免对同一共享变量的争夺。 二、什么是线程通信? 多个线程在处理 同一个资源 ,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的 使用或操作 。 就是 多个线程在操作同一份数据时, 避免对同一共享变量的争夺 。 于是我们引出了 等待唤醒机制 :( wait() 、 notify() ) 就是在一个线程进行了规定操作后,就进入等待状态( wait ), 等待其他线程执行完他们的指定代码过后 再将其唤醒( notify ); 1. 多个线程并发执行时, 在默认情况下CPU是 随机切换线程 的,当我们需要多个线程来 共同完成 一件任务, 并且我们希望他们 有规律 的执行, 那么多线程之间需要一些 协调通信 ,以此来帮我们达到 多线程共同操作一份数据 。 2