`
- 浏览:
4180152 次
-
优先级>1~10
线程调度
OS:
抢占式>更高优先级的线程会取代当前运行的线程
非抢占式>即使存在更高优先的线程,也不会取代当前运行的线程
JVM:
绿色线程:最简单的线程处理模型.对os来说只有一个进程一个线程,因此
jvm必须维护该创建线程的原始信息等..
守护线程/非守护线程:
在创建线程的父线程死亡时,守护线程会自动结束,而非守护线程
则不会.
创建线程
实现Runnable接口 Thread类 ThreadGroup类
静态方法
int Thread.activeCount();返回当前线程所在的线程组中活动线程数目
Thread Thread.currentThread();返回当前线程
void Thread.sleep(long);
基本操作
1.设置daemon/non-daemon属性
setDaemon();设置是否为守护线程
2.启动
调用start()方法,系统回调run()方法
3.停止线程/挂起/恢复线程
stop()/suspend()/resume();
4.转让控制权给其他线程
yield()一般指让其他同优先级的线程获取cpu时间.
5.改变优先级
setPriority()
6.等待其他对象
obj.wait()
7.中断线程
interrupt()>发送中断线程的消息
isInterrupted()>不清空标志,该方法为对象方法;返回当前线程是否被中断
Thread.interrupted()>返回标志并清空,该标志表示当前线程是否被中断
同步 对象锁
线程分配CPU是异步的,线程的执行顺序也是不可预算的,当不同的线程访问共同的
资源,就会造成资源的不安全性,在底层中,每个线程访问资源时,只是访问了资源的
缓存值,不同的执行顺序导致了不同时间内缓存资源的不一致性.java提供了
synchronized关键字,当某个线程第一次访问该资源时,锁定资源,直至线程访问完毕,
其他线程才可以访问,当该线程在访问资源中被中断的时候,其他线程无法访问该资源.
object.wait();/object.notify();
这2个函数都必须在synchronized的代码块或者函数块里面使用.
当调用对象的wait方法时候,线程暂停,直至该对象的notify被调用,wait方法的后面的
代码才被执行.当该对象有多个wait方法被调用时,唤醒线程的方法会唤醒最早调用
wait的线程.系统同时还提供了notifyAll()方法以唤醒所有等待对象.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
1.继承线程父类,自定义子类 2.子类中重写run方法,@override,里面放你像实现的功能 3.mian()函数中创建子类对象,MyThread my =
这本书对JAVA多线程进阶帮助非常之大而且详细、融会贯通、看了必定打通多线程任督二脉
人工智能-项目实践-多线程-java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识 java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识
来自B站 遇见狂神说
。
。
java进阶提高学习教程-13JVM与多线程
本Java视频教程适合有一定编程语言基础的学员观看,在本Java视频教程中讲解了Java面向对象、异常、数组、常用类、集合、IO流、线程、反射机制。该视频教程基于Java13进行讲解,Java13是目前Java最新版本。视频中讲师...
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
多线程(共44页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 17.网络编程(共42页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 18.类加载与反射(共25页).ppt
Java基础和Java进阶: 1、Junit使用流程 2、集合进阶(一) 3、集合框架(二) 4、Stream流 5、进阶测试 6、IO流 7、算法(部分) 8、多线程 9、网络编程 10、Java高级
java多线程基础知识练习题,选择题及代码题。适合初学者
共九章内容: 第 1 章 Java概述 第 2 章 Java语言基础 第 3 章 类的封装、继承和多态 第 4 章 接口、内部类和 Java API 基础 ...第 7 章 多线程 第 8 章 Applet 应用程序 第 9 章 输入/输出流和文件操作
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)...进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。
中文名: 编程实践:Java进阶100例 原名: 编程实践:Java进阶100例 别名: Java 作者: 李相国等. 译者: 李相国等. 图书分类: 软件 资源格式: PDF 版本: 影印版 出版社: 李相国等. 书号: 9787111372370. 发行...
山西大学java进阶实验 实验1:代码 实验2:反射 实验3:泛型 实验4:注解 实验5:网络编程 实验6:多线程 实验7:序列化 实验8:数据库 实验9:Servlet 实验10:JSP 实验11:XML解析 实验12:单例模式与枚举
多线程实现案例(多兵种联合攻击防御塔程序),适合java进阶学习。
华师大陈良育老师为您讲解Java进阶课程中的多线程、网络、数据库等等
27天实现java从入门到进阶 第一天:语言环境 第二天:常量变量 第三天:流程控制 第四、五天:方法与数组 第六天:类 第七天:对象的出生 第八天:类与类继承 第九天:具体到抽象的升华 第10天:权限内部类包 第11天...
多线程(共44页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 17.网络编程(共42页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 18.类加载与反射(共25页).ppt