线程(1)----Thread的方法函数
来源:互联网 发布:大疆一键全景软件下载 编辑:程序博客网 时间:2024/04/30 11:58
1)优先级(priority)
每个类都有自己的优先级,一般property用1-10的整数表示,默认优先级是5,优先级最高是10;优先级高的线程并不一定比优先级低的线程执行的机会高,只是执行的机率高;默认一个线程的优先级和创建他的线程优先级相同;
2)Thread.sleep()/sleep(long millis)
当前线程睡眠/millis的时间(millis指定睡眠时间是其最小的不执行时间,因为sleep(millis)休眠到达后,无法保证会被JVM立即调度);sleep()是一个静态方法(static method) ,所以他不会停止其他的线程也处于休眠状态;线程sleep()时不会失去拥有的对象锁。 作用:保持对象锁,让出CPU,调用目的是不让当前线程独自霸占该进程所获取的CPU资源,以留一定的时间给其他线程执行的机会;
3)Thread.yield()
让出CPU的使用权,给其他线程执行机会、让同等优先权的线程运行(但并不保证当前线程会被JVM再次调度、使该线程重新进入Running状态),如果没有同等优先权的线程,那么yield()方法将不会起作用。
4)thread.join()
在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行
5)object.wait()
当一个线程执行到wait()方法时,他就进入到一个和该对象相关的等待池(Waiting Pool)中,同时失去了对象的机锁—暂时的,wait后还要返还对象锁。当前线程必须拥有当前对象的锁,如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常,所以wait()必须在synchronized block中调用。
6)object.notify()/notifyAll()
每个类都有自己的优先级,一般property用1-10的整数表示,默认优先级是5,优先级最高是10;优先级高的线程并不一定比优先级低的线程执行的机会高,只是执行的机率高;默认一个线程的优先级和创建他的线程优先级相同;
2)Thread.sleep()/sleep(long millis)
当前线程睡眠/millis的时间(millis指定睡眠时间是其最小的不执行时间,因为sleep(millis)休眠到达后,无法保证会被JVM立即调度);sleep()是一个静态方法(static method) ,所以他不会停止其他的线程也处于休眠状态;线程sleep()时不会失去拥有的对象锁。 作用:保持对象锁,让出CPU,调用目的是不让当前线程独自霸占该进程所获取的CPU资源,以留一定的时间给其他线程执行的机会;
3)Thread.yield()
让出CPU的使用权,给其他线程执行机会、让同等优先权的线程运行(但并不保证当前线程会被JVM再次调度、使该线程重新进入Running状态),如果没有同等优先权的线程,那么yield()方法将不会起作用。
4)thread.join()
在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行
5)object.wait()
当一个线程执行到wait()方法时,他就进入到一个和该对象相关的等待池(Waiting Pool)中,同时失去了对象的机锁—暂时的,wait后还要返还对象锁。当前线程必须拥有当前对象的锁,如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常,所以wait()必须在synchronized block中调用。
6)object.notify()/notifyAll()
唤醒在当前对象等待池中等待的第一个线程/所有线程。notify()/notifyAll()也必须拥有相同对象锁,否则也会抛出IllegalMonitorStateException异常。
http://www.cnblogs.com/DreamSea/archive/2012/01/11/JavaThread.html
0 0
- 线程(1)----Thread的方法函数
- 线程的礼让(Thread.yield())方法
- 线程的礼让(Thread.yield())方法
- 线程Thread-----方法(1)-----继承:
- Thread 线程(1)
- 覆盖Thread类的run()方法使用线程
- 通过重写Thread的run()方法显示新线程
- 线程Thread的类的核心方法
- C# 线程Thread的Join()方法
- 创建线程的方法 Thread Runnable
- C# 线程Thread的Join()方法
- Android 线程 thread的实现方法
- JAVA线程-Thread类的方法
- 继承Thread类的线程实现方法
- java Thread 线程的.Join()方法
- Java创建线程Thread的两个方法
- Delphi Thread 进程和线程函数(1)
- java线程之用Thread类创建线程的方法
- 线程(1)---Thread 与 Runnable区别
- 安装Vmware tools
- 线程(1)---线程的状态(State)
- 基础总结篇之五:BroadcastReceiver应用详解
- git操作之同步分支
- 线程(1)----Thread的方法函数
- 把二元查找树转变成排序的双向链表
- 线程(1)----线程与进程
- 文件
- 线程(1)----线程停止
- 【西祠日志】【08】周五周五,一周又结束,有点困惑未了
- [Leetcode 229, Medium] Majority Element II
- 如何搭建Struts2项目
- Android开发笔记--WIFI状态判断