多线程(J2SE学习随笔三)

 多线程

1、线程是进程中的一条执行路径。进程是系统中正在运行的程序。(进出是一个静态概念,线程是一个动态概念。)

2、开启一个新的线程的方法:

a、继承Thread类,并且重写Thread中的run方法。

b、实现Runnable接口。

注意:开启新线程是通过调用start方法,而直接调用run方法只是一般得方法调用。

3、线程状态的转换:

线程状态转换图 

4、线程控制基本方法

isAlive()判断线程是否还“活着”,即线程是否还未终止。

getPriority()获得线程的优先级数值。

setPriority()设置线程的优先级数值。

Thread.sleep()见当前线程睡眠指定毫秒数。

join()调用某线程的该方法,将当前线程与该线程“合并”,即等待该线程 结束,再回复当前线程的运行。

yield()让出CPU,当前线程进入就绪队列等待调度。(只让一次)

wait()但其线程进入对象的wait pool。

notify()/notifyAll()唤醒对象的wait pool中的一个/所有等待线程。

注意:线程的优先级取值范围1到10,默认为5。

5、线程同步是为了防止多个线程访问同一个数据对象时,对数据造成破坏。

实现线程同步的方法:

a、代码块锁定:

synchronized(this){......}

b、方法锁定:

public synchronised void XXX(...){......}

6、线程死锁:是一种少见的、而且难于调试的错误,在两个线程对象对两个同步对象具有循环依赖时,就会出现死锁现象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值