与 *** 作系统中多线程差不多,但是JAVA中的多线程是对虚拟机,
而 *** 作系统是面向实实在在的硬件(更复杂)。利用资源处理任务的思路相同。
每个线程拥有独立的运行栈和程序计数器(PC),线程切换的开销小一个进程中的多个线程共享相同的内存单元/内存地址空间。它们从同一堆中分配对象,可以访问相同的变量和对象。使得线程的通信简便、高效。但多个线程 *** 作系统共享的资源有安全隐患。(深入理解需要长期不断学习,迭代更新) 3、线程的简单创建
1、方式一
1.创建一个继承于Thread的子类
2.重写Thread的run()>>>此线程需要做的事写在此处
3.创建Thread的对象
4.通过此对象调用start()( 作用:启动线程,去调用run())
注意:
不能用 对象.run() 启动线程一个对象只能用一次start()
创建一个线程:
线程一
package com.learn.thread; //1.创建一个继承于Thread的子类 public class LearnThread_01 extends Thread { //2.重写Thread的run() @Override public void run() { //找出1-100的偶数 for (int i = 1; i <= 100; i++) { if (i%2 == 0) { System.out.println("线程一:"+i); } } } }
线程二
package com.learn.thread; public class LearnThread_02 extends Thread{ @Override //找出1-100 奇数 public void run() { for (int i = 1; i <= 100; i++) { if (i%2 != 0) { System.out.println("线程二:"+i); } } } }
测试
package com.learn.thread; public class AllThread { public static void main(String[] args) { LearnThread_01 learnThread1 = new LearnThread_01(); learnThread1.start(); //主线程 for (int i = 1; i <= 100; i++) { if (i%2 != 0) { System.out.println("线程二:"+i); } } } }
结果:这里已经乱了哦(体现了线程的思想,此处线程不安全)
补充1:Thread中常用方法
satar()========================启动线程、调用run()run()=========================子类重写建立需要的 *** 作currentThread()=================静态方法,返回执行当前代码的线程getName()=====================获取当前线程的名字setName()=====================设置当前线程的名字yield()========================释放当前Cpu的使用sleep()=======================停等(1000)单位为毫秒join()========================在线程A调用线程B时,A阻塞直到B完成结束阻塞
补充2:线程的优先级
0000&*&
NAX_PRIORITY :10NAX_PRIORITY :5 (默认优先级)NAX_PRIORITY :1
&*&
setPriority();
getPriority()
2、方式二
- 创建一个实现Runnable 接口的类实现抽象方法run()创建实现类的对象将此对象作为参数传递Thread类的构造器中,创建Thread的对象通过Thread的对象调用start()
package com.learn.thread; public class RunLearThread implements Runnable{ @Override public void run() { //找出1-100的偶数 for (int i = 1; i <= 100; i++) { if (i%2 == 0) { System.out.println("Runnable 实现"); } } } }
测试
@Test public void test_02(){ RunLearThread run = new RunLearThread(); Thread thread = new Thread(run); thread.start(); }
结果:
1、线程的生命周期(java)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)