Java中的多线程
1、 线程中的主要方法
a) isAlive() 判断线程是否还活着,即线程是否未终止
b) getPriority() 获得线程的优先级
c) setPriority() 设置线程的优先级
d) Thread.sleep() 设置线程休眠的时间
e) jion() 把当前线程与该线程合并
f) yield() 让出CUP
g) 线程的优先级
i. Thread.MIN_PRIORITY = 1 最小优先级
ii. Thread.NORM_PRIORITY = 5 默认优先级
iii. Thread.MAX_PRIORITY = 10 最大优先级
2、 线程的中断
a) Stop() 已过时,基本不用
b) Interrupt() 简单,粗暴
c) 推荐使用的是设置标志位
3、 线程的高级操作
a) wait() 使当前线程等待,直到被其线程唤醒
b) notify() 唤醒等待的线程
4、 实现同步的两种方式(主要是synchronized的使用)
a) 锁代码块
i. Synchronized(object){要锁的代码块}
b) 锁方法(推荐使用)
i. Synchronized void method(){}
1、 Java多线程的实现主要有两个方式,一个是通过继承Thread类,一个是Runnable接口的实现。在使用多线程时主要用到两个方法一个是重写run()方法,用来实现将要执行的代码。第二个方法是start(),用来启动线程。
2、 Thread类的实现
1 public class ThreadDemo extends Thread{ 2 3 public void run(){ 4 for(int i = 0; i < 20; i++){ 5 System.out.println(Thread.currentThread().getName()+i); 6 } 7 } 8 public static void main(String[] args) { 9 10 ThreadDemo td1 = new ThreadDemo(); 11 td1.setName("线程1: "); 12 13 ThreadDemo td2 = new ThreadDemo(); 14 td2.setName("线程2: "); 15 16 //获取优先级 17 System.out.println("线程一的优先级为:"+td1.getPriority()); 18 19 //设置线程的优先级优先级的值为0 - 10 从小到大 20 td1.setPriority(MIN_PRIORITY); 21 td2.setPriority(MAX_PRIORITY); 22 23 td1.start(); 24 td2.start(); 25 26 27 } 28 29 }
1、 Runnable接口的实现
1 ublic static void main(String[] args) { 2 TicketRunnable tr = new TicketRunnable(); 3 4 Thread td1 = new Thread(tr); 5 td1.setName("窗口1"); 6 Thread td2 = new Thread(tr); 7 td2.setName("窗口2"); 8 Thread td3 = new Thread(tr); 9 td3.setName("窗口3"); 10 11 td1.start(); 12 td2.start(); 13 td3.start(); 14 }
作者:青玉伏案
出处:http://www.cnblogs.com/ludashi/
本文版权归作者和共博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
收简历:坐标美团(北京总部),长期招聘FE/iOS/Android靠谱工程师,入职后,可内部联系楼主,有小礼品赠送,有意者可邮箱投递简历:zeluli@foxmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?