线程总结大全
来源:互联网 发布:vue node sass 编辑:程序博客网 时间:2024/06/04 09:01
线程
java中的类Thread开启一个线程:
查看API
创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成:
面试题:为什么重写run方法run方法里面是需要多线程执行的代码run方法是不能开启线程的,仅仅是执行人家的代码。面试题:start()和rn()方法start()是开启线程,使线程处于就绪状态run():调用仅仅是普通方法的调用,没有开启一个新线程同一个线程只能开启一次,多次开启报错:IllegalThreadStateException
Thread类的方法:
String getName()返回该线程的名称。
static Thread currentThread():返回对当前正在执行的线程对象的引用。我觉得就是主线程
int getPriority() 返回线程的优先级。
void setPriority(int newPriority) 更改线程的优先级。
线程休眠:static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
线程加入: void join() 等待该线程终止。
守护线程: void setDaemon(boolean on) 将该线程标记为守护线程或用户线程。 当只剩下守护线程时jvm将终止
礼让线程:static void yield() 暂停当前正在执行的线程对象,并执行其他线程。
终止线程: void stop(Throwable obj) 已过时。 强制终止线程。
中断线程: void interrupt() 中断线程。
例如:Thread.currentThread().setName("主线程");System.out.println(Thread.currentThread().getName()); td1.start();td1.join();td2.start();td3.start();Thread.currentThread().setName("主线程");System.out.println(Thread.currentThread().getName());Thread(String name) 分配新的 Thread 对象。
1.分时调度模型:每个线程轮流使用cpu
2.抢占式调度模型:根据优先级级别进行调度√
java采用的是挑战式调度模型:
优先级:默认是5
java.lang.Thread
public static final int MAX_PRIORITY 10
public static final int MIN_PRIORITY 1
public static final int NORM_PRIORITY 5
public void run() { System.out.println("开始执行"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("结束执行");}
td1.start(); Thread.sleep(300); td1.interrupt(); td1.stop();
stop()是立即终止线程、td1.interrupt()不会立即终止
线程的生命周期:
1.创建线程:创建线程对象
2.就绪状态:有执行权,没有执行时间片。没有资源服务
3.运行状态
阻塞:运行到中止(sleep)没有执行权
唤醒:中止到就绪状态,有执行权
4.死亡:终止线程状态
线程的第二种创建方式:实现接口 Runnable
5.两种创建线程的方法区别:
继承Thread:对于共享变量必须设置static实现
实现接口Runnable:
- 线程总结大全
- linux 线程函数大全
- LINUX 线程函数大全
- LINUX 线程函数大全
- linux线程函数大全
- linux 线程函数大全
- linux线程函数大全
- linux线程函数大全
- linux线程函数大全
- android 线程大全
- 线程函数大全
- 线程函数大全
- 线程函数大全
- 线程函数大全
- 线程总结
- 线程总结
- 线程总结
- 线程总结
- List / Map / Collections
- QOpenGLWidget + QPainter混合编程
- OpenResty 最佳实践学习--实战演习笔记(3)
- 20171107
- pdf转换为swf格式文件命令(version 9)
- 线程总结大全
- List / Map / Collections 重要的方法
- HDOJ2076 夹角有多大
- php中使用hash_hmac函数实现HMAC-SHA1签名算法的来龙去脉
- 软链接与硬链接
- 移动端点击事件全攻略,这里的坑你知多少?
- JavaScript入门时不该犯的几个低级编写脚本错误
- mybatis-sql优化-参数遍历
- 1701H2 11.7 王建瑜 连续第三天