Java 线程方法
线程标识相关
方法 | 描述 |
public Thread(Runnable target, String name) |
带参数的构造方法, 第二个参数是线程名称 |
public static Thread currentThread() |
静态方法, 返回当前线程 |
public String getName() |
获取线程名称, 如果没指定, 默认 Thread-index |
public void setName(String name) |
设置线程名称 |
public long getId() |
获取线程编号 |
线程优先级相关
不是绝对的优先级, 只是提升抢夺 CPU 概率
有三个常量, MIN_PRIORITY(1); NORM_PRIORITY(5); MAX_PRIORITY(10); 默认是 NORM_PRIORITY
方法 | 描述 |
public int getPriority() |
获取线程优先级 |
public void setPriority(int newPriority) |
设置线程优先级, 范围 1-10 |
阻塞相关方法
方法 | 描述 |
public void join() throws InterruptedException |
合并线程 加入一个新线程, 当新线程执行完毕再执行当前线程 |
public static void yield() |
线程让步, 静态方法 让出 CPU 的使用权, 再次和别的线程抢夺 CPU 资源 写在线程体内部( run() 方法里), 注意主线程没有 run() 方法 |
public static void sleep(long millis) throws InterruptedException |
线程休眠, 静态方法 暂定执行, 指定时间过后再次执行 休眠期间不会释放锁, 意味着休眠期间别的线程不会做什么事儿, 因为获取不到锁 |
public void wait(long timeout) throws InterruptedException public void wait() throws InterruptedException |
来自 Object 类 能不使用就不使用, 很多书是这样说的, 我也没完全搞明白这个方法的原理~~~~ 线程等待, 如果指定时间, 该时间过后自动唤醒; 如果不指定, 需要使用 notify() 或 notifyAll() 来唤醒 等待期间会释放锁, 唤醒之后再次尝试获取锁 |
public void notify() public void notifyAll() |
来着 Object 类 能不使用就不使用 唤醒 wait() 的线程 |
Java 线程方法的更多相关文章
- java 线程方法join的简单总结
虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间 ...
- java线程方法join的总结
虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间 ...
- java 线程方法 ---- wait()
class MyThread5 implements Runnable{ private int flag = 10; @Override public void run() { while (fla ...
- java 线程方法 ---- yiled()
class MyThread3 implements Runnable{ @Override public void run() { for (int i = 0; i < 3; i++){ / ...
- java 线程方法 ---- join()
class MyThread2 implements Runnable{ @Override public void run() { for (int i = 0; i < 5; i++){ S ...
- java 线程方法 ---- sleep()
class MyThread implements Runnable{ @Override public void run() { for (int i = 0; i < 5; i++){ Sy ...
- java线程的简单实现及方法
java线程: 线程是一个程序内部的顺序控制流. cpu实际上在一个时间点上,只执行一个.只不过我们把cpu分成了多个时间片,由于速度很快,我们看起来像是多个线程.. 就像你的时间分成几片,这样 整体 ...
- Java线程中yield与join方法的区别
长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...
- java线程中的sleep/wait/notify/yield/interrupt方法 整理
java线程中的sleep/wait/notify/yield/interrupt方法 sleep 该方法能够使当前线程休眠一段时间 休眠期间,不释放锁 休眠时间结束之后,进入可执行状态,加入到线程就 ...
随机推荐
- SpringMVC项目容易出现的BUG
1.400错误:1.语义有误,当前请求无法被服务器理解.除非进行修改,否则客户端不应该重复提交这个请求. 2.请求参数有误. 你发送的请求有误,这个问题去页面提交的地方看. 如:你想删除一条数据,id ...
- Scala - 快速学习07 - 模式匹配
Scala中的模式匹配的功能可以应用到switch语句.类型检查.“解构”等多种场合. 简单匹配 Scala的模式匹配最常用于match语句中.Scala的match语句类似Java里的switch. ...
- Eclipse For JavaEE安装、配置、测试
Eclipse For JavaEE安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与配置 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发 ...
- logstash快速入门实战指南-Logstash简介
作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 Kibana从入门到精通 Logstash是一个具有实时流水线功能的开源数据收集引擎.Logstash可以动态统一来自不同来源的 ...
- CSS实例详解:Flex布局
本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题. 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以对比 ...
- RabbitMQ系列(三)RabbitMQ交换器Exchange介绍与实践
RabbitMQ交换器Exchange介绍与实践 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchang ...
- 设计模式之装饰模式,session共享的底层原理
前言 还记得当初写spring-session实现分布式集群session的共享的时候,里面有说到利用filter和HttpServletRequestWrapper可以定制自己的getSession ...
- 第3章 Linux上文件的权限管理
3.1 文件/目录的权限 3.1.1 文件的权限 每个文件都有其所有者(u:user).所属组(g:group)和其他人(o:other)对它的操作权限,a:all则同时代表这3者.权限包括读(r:r ...
- Perl的列表和数组
列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表. 列表中的元素可以是字符串.数值.undef或它们的混合. 列表中的字符串元素需要使用引号包围. 空列表是括号中什么都没有的列表 ...
- 使用 Cglib 实现多重代理
前言 由于 Cglib 本身的设计,无法实现在 Proxy 外面再包装一层 Proxy(JDK Proxy 可以),通常会报如下错误: Caused by: java.lang.ClassFormat ...