- 2
- 0
- 约3.31千字
- 约 4页
- 2020-02-07 发布于江苏
- 举报
Java 线程学习笔记
[lulaing 2007-12]
构造一个线程
工作线程类需要实现 Runnable 接口,并实现 run()方法,run()方法中即是线程的工作函数。
public WorkThread implements Runnable
{
public void run()
{
//Work
}
}
启动一个线程
线程构造成功后就可以使用该线程进行工作了。运行 Thread.start()即开始一只新线程工作,
执行 Thrad.run() 同样也能执行线程,但不一样的事其并不会产生一只新线程,而是使用当前
线程来执行。
Runnable work=new WorkThread();
Thread thread=new Thread(work);
thread.start();
线程工作所需要的参数或返回值,可以通过构造线程或执行线程之前置如。
interrupt 关键字
interrutp 关键字可用于中断一只线程,使用 interrutp 向一只线程发送一个中断消息,但线程
继续执行与否并不因为其而改变。
thrad.interrupt();
而在线程内部应该在执行时始终判断当前工作是否被要求中断,如:
public void run()
{
while(!Thread.currentThread().isInterrupted())
{
//Work
}
}
即不为中断状态即可执行。
恢复中断:
Thread.interrupted();
返回线程的中断状态并清除中断。
在线程为中断状态的情况下使线程进入睡眠会抛出 InterruptedException 。所以线程睡眠之
前因先判断中断状态。
线程线程优先级
thread1.setPriority(int arg0)
java 线程优先级有 10 级,1 级最低,10 级最高。另外可使用优先级常量:
Thread.MAX_PRIORITY 10
Thread.NORM_PRIORITY 5
Thread.MIN_PRIORITY 1
守护线程
守护线程是为工作线程提供支持或管理的线程,其本质上同普通线并无不同,但如果一个 JVM
中仅有守护线程处于活动状态,那么 JVM就会认为系统没有运行的必要,并终结系统。
设置为守护线程:
thread1.setDaemon(Boolean arg0)
线程组
线程组可以很方便的管理一组线程,使用如下:
ThreadGroup tGroup=new ThreadGroup(String name);
Thread t=new Thread(tGroup,String tName);
对线程组对象进行操作将可以统一一致的操作所有组内线程,线程组内的子线程可以在构造
线程组。
线程同步
Java 线程同步大致有三种:方式 synchronized签名、进入锁、synchronized对象
synchronized 签名:
使用synchronized方式同步较为简单,仅需要在方法头签名即可。
public synchronized void process(){}
方法即会同步,在方法中可以使用wait()、notify()、notifyAll()方法来控制
线程。
进入锁:
进入锁实现了接口Lock,锁具有比synchronized更强大的功能,使用如下:
class Some()
{
private Lock lock=new ReentrantLock();
public void process()
{
lock.lock();
try
{
//OP
}
finally
{
lock.unlock();
}
}
}
进入锁比synchronized强大的地方在于其可以加入锁的约束条
您可能关注的文档
最近下载
- 陶行知教育文集读后感.pdf VIP
- 2025年广东省住院医师规范化培训结业理论考核(外科)历年参考题库含答案详解.docx VIP
- 河道管理工程施工的重点及难点攻克策略.docx VIP
- 2025学年小学综合实践活动二年级下册全册教案.docx VIP
- 心房颤动管理指南(2026年版).pptx VIP
- 2026年猫宁供应商入驻考试答案及题目.docx
- WC67Y—100T使用说明书内容.pdf VIP
- 2026版高考物理南方凤凰台二轮复习主观题限时热练5(学用).doc VIP
- 考虑停车容量约束的瓶颈路段通勤出行拥挤收费研究-交通运输规划与管理专业毕业论文.docx VIP
- 2025年江西外语外贸职业学院单招职业适应性测试题库附参考答案(考试直接用).docx VIP
原创力文档

文档评论(0)