JAVA | 23
来源:互联网 发布:mac文件拷贝不到u盘 编辑:程序博客网 时间:2024/05/22 00:28
每当用 java 命令解释一个程序类时,操作系统就会启动一个进程,而 main 只是这新进程上的一个子线程。
JVM 启动的时候会执行 main 线程和 gc 线程。
线程的命名与取得:取得的是执行当前本方法的线程名。
class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); }}public class Main { public static void main(String[] args) { MyThread myThread1 = new MyThread(); MyThread myThread2 = new MyThread(); new Thread(myThread1).start(); new Thread(myThread2,"Thread A").start(); myThread1.run(); }}
默认情况下,在休眠的时候如果设置了多个线程对象,那么所有的线程对象将一起进入 run 方法(先后顺序实在是太短了)。
class MyThread implements Runnable{ @Override public void run() { for(int i = 0; i < 10; i ++) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()); } }}public class Main { public static void main(String[] args) { MyThread myThread1 = new MyThread(); new Thread(myThread1,"Thread A").start(); new Thread(myThread1,"Thread B").start(); new Thread(myThread1,"Thread C").start(); new Thread(myThread1,"Thread D").start(); }}
优先级越高的线程对象越有可能先执行
主线程的优先级别是中等。
class MyThread implements Runnable{ @Override public void run() { for(int i = 0; i < 10; i ++) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + " " + i); } }}public class Main { public static void main(String[] args) { MyThread myThread1 = new MyThread(); Thread A = new Thread(myThread1,"Thread A"); Thread B = new Thread(myThread1,"Thread B"); Thread C = new Thread(myThread1,"Thread C"); Thread D = new Thread(myThread1,"Thread D"); A.setPriority(Thread.MAX_PRIORITY); //10 B.setPriority(Thread.MIN_PRIORITY); //1 C.setPriority(Thread.NORM_PRIORITY); //5 D.setPriority(Thread.MIN_PRIORITY); //1 A.start(); B.start(); C.start(); D.start(); System.out.println(Thread.currentThread().getName() + " " + Thread.currentThread().getPriority()); }}
阅读全文
0 0
- JAVA | 23
- java基础总结23-java线程1
- JAVA开发之 23-JAVA数据类型
- Java面试23问
- 23-java基础加强
- java基础23问
- java 23 设计模式
- java基础23_GUI
- java学习笔记23
- Java学习笔记23
- java(23) - 观察者模式
- Java基础-23
- Java---23---StringBuffer
- Java基础23
- java 2015.6.23
- Java心得23
- Java学习-23天
- Java知识点23
- 压力测试相关内容记录
- 九连环 C语言递归代码
- Tomcat安装出错问题及新建Servlet错误
- VNC远程界面卡死解决方法
- 【区块链开发指南】序言
- JAVA | 23
- 数据类型
- Linux安装JDK和配置环境变量
- md5加密
- centos6.0下Error: Connection activation failed: Device not managed by NetworkManager解决办法
- 决定系数R^2
- 三星将开设人工智能和机器学习的新研究中心 | 资讯
- 语音助理究竟好不好用?看看国外消费者怎么说 | 精选
- 逆天!看看现在可以买到的13款机器人有多厉害! | 关注