鸟哥Java学习之线程间通信-多线程

原创 2016年06月01日 20:58:59
1.等待唤醒机制
    涉及的方法:wait(),notify(),notifyAll() 这些方法都必须定义在同步中,明确自己操作的是哪个锁上的线程。
 r.wait(),r 为同步的锁。

2.多生产者多消费者问题
见 ProducerConsumerDemo.java

3.同步代码块,对于锁的操作是隐式的,而新版本中有Lock,jdk1.5以后将同步和锁封装成对象,并将操作锁的隐式方法定义到了该对象中。
     Lock接口替代了同步代码块或同步函数synchronized的使用,可以一个锁上加上多组监视器    Condition接口替代了Object中的wait(),notify(),notifyAll方法,将其进行了封装,变成condition监视器对象,可以任意锁进行组合。
Lock lock = new ReentrantLock;//新建互斥锁
lock.lock(); //获取锁
 lock.unlock(); //释放锁
 Condition producer_con = lock.newCondition();
 producer_con.await();
consumer_con.signal();

4.wait和sleep区别:
    wait可以指定时间也可以不指定,sleep必须指定时间;在同步中时,对cpu的执行权和锁的处理不同,wait释放执行权,释放锁,sleep释放执行权,不释放锁

5.停止线程:stop方法(已过时,不安全)run方法结束
    任务中都会有循环结构,只要控制住循环就可以结束任务,用定义标记
 private boolen flag=true;
  while(flag){}
 public void setflag(){flag=flase;}

    如果线程处于冻结状态,无法读取状态,此时用interrupt()方法将线程从冻结状态强制恢复到运行状态,让线程具备cpu执行资格,但是强制动作会发生InterruptedException,记得要处理,如将标记改为flase。

6.守护线程(后台线程),setDaemon(),在开启线程前使用。当所有前台线程结束时,后台线程自动结束。
版权声明:本文为博主原创文章,未经博主允许不得转载。

java 多线程学习笔记3-单例设计 线程间通信 互斥锁

1、多线程-单例设计模式:保证类在内存中只有一个对象。例如:(Runtime类)     a、控制类的创建,不让其他类来创建本类的对象。private b、在本类中定义一个本类的对象。Single...

(48)Java学习笔记——多线程 / 线程间通信 / 线程组 / 线程池 /

加锁注意: A / 不同种类的县城都要加锁 B / 不同种类的线程家的锁必须是同一把。 等待唤醒机制: void wait() void notify() void notifyAll() 这些方...

Java多线程四:线程间通信/等待唤醒机制

多线程等待唤醒机制介绍线程间通信方式 1、全局变量(基于内存共享) 2、Message消息机制 备注:基于内存共享比较容易实现 如果多线程只是处理完全相同的任务时,那么事情就简单了,似乎也不需要线程之...

JAVA多线程-线程间通信(二)-生产者/消费者模式实现

二、生产者/消费者模式实现     生产者/消费者模式是等待/唤醒机制的经典案例 1、一生产与一消费:操作值 package org.jksoft.thread.product; import...

Java多线程-线程间通信Demo

三个及以上线程间通信(以三个为例)法① : 利用jdk1.5新特性(互斥锁)package com.demo.reentranlock;import java.util.concurrent.lock...

java多线程与线程间通信

本文学习并总结java多线程与线程间通信的原理和方法,内容涉及java线程的众多常见重要知识点,学习后会对java多线程概念及线程间通信方式有直观清晰的了解和掌握,可以编写并分析简单的多线程程序。 ...

黑马程序员——java基础日记——多线程(2)——线程间通信与JDK1.5新特性

多线程 一、线程间通信          多线程在操作统一数据,但是任务却不同,这时就需要线程间的通信来处理了。 在通信中我们经常用到的是等待/唤醒机制,该机制用到的方法都要定义在同步中: wait(...

java多线程与线程间通信的原理和方法

本文学习并总结java多线程与线程间通信的原理和方法,内容涉及java线程的众多常见重要知识点,学习后会对java多线程概念及线程间通信方式有直观清晰的了解和掌握,可以编写并分析简单的多线程程序。 ...

黑马程序员--Java笔记08--多线程 创建、安全问题、线程间通信

多线程 线程:进程中负责程序执行的控制单元(执行路径),一个进程至少有一个线程; 多线程:一个进程中有多个执行路径; 多线程好处:解决了多部分代码同时运行的问题;弊端:线程太多,效率降低 JVM启动的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:鸟哥Java学习之线程间通信-多线程
举报原因:
原因补充:

(最多只允许输入30个字)