文档章节

JAVA7并发编程

jiangmitiao
 jiangmitiao
发布于 2015/06/11 16:28
字数 399
阅读 104
收藏 1

1线程的创建与运行

接口Runnable

覆盖run方法

Thread thread = Thread(Runnable r,String name);
thread.start();

线程信息

thread中包含id  name  priorty  status

priorty中包括1到10,1最低,10最高

status状态有6种:new, runnable, blocked, waiting, time waiting, terminated

线程中断

interrupt()方法会中断线程。产生interrupredexception异常,用isInterrupted()来判断。

线程休眠与恢复

sleep函数也会抛出interruptedexception异常

等待线程终止

当一个线程join()方法被调用,调用所在线程将会挂起,直到被调用线程完成任务

守护线程

Daemon 线程优先级很低,当一个进程里没有其他线程运行的时候,守护线程才运行。

setDaemon方法只能在start前进行调用。

线程中不可控异常处理

非运行时异常,ioexception  classnotfoundexception,必须声明throw或捕获

运行时异常,numberformatexception,不需要任何操作

run方法不支持throws所以只能捕获

线程的分组

ThreadGroup tg;

使用工厂类创建线程

接口:ThreadFactory

可以创建个性化的线程,即设置线程信息。

2线程同步

使用synchronized实现同步方法

synchronized可以给类,方法,对象使用,静态方法和动态方法同时使用synchronized,则两个方法能被不同线程同时使用。

同步代码中使用条件

wait()使用时要捕获interruptedexception方法

使用锁同步:

Lock lock = new ReentrantLock();
lock.lock();
lock.unlock();

在锁中使用多条件:

Condition c1 = lock.newCondition();
Condition c2 = lock.newCondition();
c1.await();
c2.signal();

condition必须在lock()和unlock()方法内。

更多文章:https://blog.gavinzh.com

© 著作权归作者所有

共有 人打赏支持
jiangmitiao

jiangmitiao

粉丝 17
博文 48
码字总数 44413
作品 1
朝阳
程序员
Java:ConcurrentHashMap的实现机制

探索 ConcurrentHashMap 高并发性的实现机制 Java并发编程之ConcurrentHashMap 聊聊并发(四)——深入分析ConcurrentHashMap 上面的三篇分析是针对java7的,java8中的实现方式已经变化。...

樂天
2015/06/28
0
0
等待多个并发事件的完成:CountDownLatch

java 并发API提供了CountDownLatch类,它是一个同步辅助类。在完成一组正在其它线程中执行的操作之 前,它允许线程一直等等。这个类使用一个整数进行初始化,这个整数就是线程要等等完成的操...

Canaan_
08/10
0
0
Java并发学习(十九)-Java8中ConcurrentHashMap分析

断断续续看了那么些天,趁着周末把知识记下来。 在平常编程时,HashMap是用的很频繁的一个类,但是,当在并发情况下,却不推荐使用它,因为它没有做任何的并发控制,不安全,是个隐患。 当然...

anLA_
2017/12/19
0
0
在集合点的同步 CyclicBarrier

它允许两个或者多个线程在某个点上进行同步。这个类与CountDownLatch类似但也有不同,使之成为更加大的类 1.它使用一个整数进行初始化,这个数是需要在某个点上同步的线程数。当一个线程到达...

Canaan_
08/11
0
0
深入理解Java 7(笔记)

switch Java 7 中新增加了对String的支持,除此之外还支持int、char、byte、short及其封装类Integer、Character、Byte、Short。对于基本类型的支持我们很容易理解,但是String类型使用了不同...

chris_2009
2016/03/30
103
0

没有更多内容

加载失败,请刷新页面

加载更多

Django支持中文

django是支持中文界面, 先找到Django语言包安装目录,我的在: /usr/local/python3/lib/python3.6/site-packages/django/conf/locale 有zh-Hans和zh-Hant两个文件, 其中zh-Hans是简体中文,...

MichaelShu
15分钟前
1
0
迷宫问题:顺序栈解法

采用顺序栈以及回溯法,一个比较简单的问题,但是从来没有写过,也算是弥补一下自己欠数据结构的债吧,居然也花了一个半小时,无地自容了。。 定义好数据结构求解算法就显得容易一些了。 st...

LoSingSang
21分钟前
0
0
Zookeeper 概述及应用场景

一、概述 分布式协调技术,主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。 ZooKeeper是一个分布式的,开放源码的分布式应用...

PeakFang-BOK
29分钟前
0
0
(译)OpenGL ES2.0 – Iphone开发指引

教程截图: OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的。 多数程序员...

robslove
39分钟前
0
0
金九银十跳槽季,程序员面试点解析之Java专场

前言 近年来Java工程师这个岗位炙手可热,市场需求大,学习Java的人也越来越多,所以IT企业与求职者的选择都比较多,那么IT企业在面试时都会提哪些问题呢。下面为大家分享 Java高级工程师面试...

老道士
42分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部