java多线程

线程基础知识

Thread类

Thread是个表示线程的类,它有启动线程,连接线程和让线程闲置的方法


如何启动新的线程

(1)
建立Runnable对象(线程的任务)
public class MyRunnable implements Runnable
{
public void run()
{
//write your code here
}
Runnable threadJob=new MyRunnable();
(2)建立Thread对象(执行工人)并赋值Runnable(任务)
Thread myThread=new Thread(threadJob);
(3)
myThread.start();

线程的状态

新建 等待执行 执行中 阻塞

线程休眠

try
{
    Thread.sleep(2000);
}
catch(InterruptedException ex)
{
ex.printStackTrace();
}
可以调用sleep()让所有的线程都有机会运行

线程命名

可以使用setName()来给线程命名,通常是用来出错的.

多线程

多线程可能导致的问题

读脏数据,丢失更新,死锁

同步化和对象锁

同步化的目标是保护重要的数据,但要记住,你锁住的不是数据而是存取数据的方法
每个对象都有单一的锁,单一的钥匙.
线程尝试要进入同步化过的方法时必须要取得对象的钥匙,如果已经被别的线程拿走了,那就得等.
对象就算有多个同步化过的方法,也还是只有一个锁.一旦某个线程进入该对象的同步化方法,其他线程就无法进入该对象的任何同步化方法.

参考资料

<<Head First Java>>Second Edition
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值