鸟哥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多线程-2 基本线程间通信 && volatile keyword

这里是通过在主线程中终止一个用户线程的操作的例子。但在本内容之前需要首先了解Java内存模型。 1. java内存模型:指定了虚拟机和Java内存RAM是如何运作的这里是关于java内存模型的详细资料...

黑马程序员--java基础复习之多线程及线程间通信

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 进程: 进程:是一个正在执行的程序 每个进程执行都有一个执行顺序。该顺序是一个执行路径,或者...

java多线程与线程间通信

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

java多线程与线程间通信

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

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

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

Java多线程-线程间通信Demo

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

java自学笔记————多线程 线程间通信之生产者消费者问题;

线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务 Object中的    notify():唤醒在此对象监视器上等待的单个线程。    notifyAll():唤醒在此对象监视器上等待...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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