当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

java线程基础备忘

发表于: 2014-04-17   作者:chenss   来源:转载   浏览次数:
摘要: t.interrupt(): 中断线程t. synchronized(o){o.wait()}: 自已放弃CPU等待o.notify(). synchronized(o){o.notify()}: 通知o.wait()的线程你可以运行了。如果这样的线程有多个,则选一个。notifyAll()将通知所有的。 注意以上都在synchronized内,因为wait, notify都必须自己的线程是
t.interrupt(): 中断线程t.
synchronized(o){o.wait()}: 自已放弃CPU等待o.notify().
synchronized(o){o.notify()}: 通知o.wait()的线程你可以运行了。如果这样的线程有多个,则选一个。notifyAll()将通知所有的。
注意以上都在synchronized内,因为wait, notify都必须自己的线程是the own the o's monitor,就是说必须在synchronized(o)内。

以上只能等待一个条件,若要多个条件可用lock.newCondition。

threadPool主要有fixed和cache, cache是0,max,synQueue就是说这个queue其实永远不放东西直接进pool。而fixed是n,n,blockQueue就是说task都先进pool满n后进queue,queue也满了就reject. reject policy是可以设的。
更通常的情况是n,m,t,blockQueue就是task先进pool超过n后进queue满后corepoolsize从n开始往上加直到m,再有task就reject policy. t是等待时间,task超过n的线程们等待t后结束。
其它的如singleThread是n=1的fixed特例。还有scheduled等。

可以用Semaphore信号量控制临界资源,CyclicBarrier等待n个线程结束,CountDownLatch倒计数等。

java线程基础备忘

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
零、一些概念 共享变量:一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的
Java多线程状态图 Java多线程状态图一: Java多线程状态图二: Java线程状态3 线程阻塞的原因: 1.I
Java多线程状态图 Java多线程状态图一: Java多线程状态图二: Java线程状态3 线程阻塞的原因: 1.I
Java多线程状态图 Java多线程状态图一: Java多线程状态图二: Java线程状态3 线程阻塞的原因: 1.I
ConcurrentHashMap是HashMap的线程安全版本,ConcurrentSkipListMap是TreeMap的线程安全版本 在Hash
0.前言 以往我们开发的程序大多是单线程的,即一个程序只有一个入口点,只有一条从头到尾的执行线路
一.线程的概念 线程的概念来源于计算机的操作系统的进程的概念。进程是一个程序关于某个数据集的一
1. 程序、进程、线程概念 程序:是计算机指令的集合,它以文件的形式存储在磁盘上。 进程:是程序运
JAVA多线程基础 一、基础理论 1、进程: 狭义定义:进程就是程序的执行过程。 我们打开任务管理器的
Java 多线程基础 ... 2 1. 线程和进程 ... 2 2.Java 内存模型 ... 3 2.1 Java内存模型的基本原理 ..
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号