Java线程学习笔记.pdfVIP

  • 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强大的地方在于其可以加入锁的约束条

文档评论(0)

1亿VIP精品文档

相关文档