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 该方法能够使当前线程休眠一段时间 休眠期间,不释放锁 休眠时间结束之后,进入可执行状态,加入到线程就 ...
随机推荐
- Spring 静态代理+JDK动态代理和CGLIB动态代理
代理分为两种:静态代理 动态代理 静态代理:本质上会在硬盘上创建一个真正的物理类 动态代理:本质上是在内存中构建出一个类. 如果多个类需要进行方法增强,静态代理则需要创建多个物理类,占用磁盘空间.而动 ...
- Impl模式实现之注意内联
最近学习muduo源码时,对于内联函数有了更深刻的认知. 内联(inline)在代码执行方面具有优势,但是有时使用不当,或者稍微不注意,就会造成编译错误. 以下将通过Impl实现说明一二: 头文件: ...
- python基础-字符串(6)
一.引言 当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密码正确,否则 ...
- python(leetcode)-283移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...
- C# 配置文件Xml读写
分析xxx.exe.config文件: <?xml version="1.0" encoding="utf-8"?> <configurati ...
- 微信JSAPI支付回调
在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 在经历了千幸万苦之,填完了所有的JSAPI支付的坑后(微信JSAPI支付 跟 所遇到的那些坑) ...
- mysql 开发进阶篇系列 18 MySQL Server(innodb_buffer_pool_size)
从这篇开始,讲innodb存储引擎中,对于几个重要的服务器参数配置.这些参数以innodb_xx 开头. 1. innodb_buffer_pool_size的设置 这个参数定义了innodb存储引擎 ...
- karma测试实践
karma是Google团队开发的一套前端测试运行框架,它不同于测试框架(jasmine,mocha等),它运行在这些测试框架之上,主要完成的工作有: 1.karma启动一个web服务器,生成包含js ...
- 【转载】ucos临界段
其实很简单: 临界段就是不可中断的程序段,比如从UART中读取当前传递回来的值,如果有UART中断,此时这个值又会改变.同样临界段就是保护这类全局变量,如在读取时间节拍时,不应该被时钟更新时钟 ...
- java jdb 调试
[hadoop@hadoop-01 ~]$ javac -help Usage: javac <options> <source files> where possible o ...