浅析Java中线程的创建和启动
前言
线程是一个程序内部的顺序控制流。cpu实际上在一个时间点上,只执行一个。只不过我们把cup分成了多个时间片,由于速度很快,我们看起来像是多个线程。就像你的时间分成几片,这样整体看来做事情有规律,效率就会高,何况是cup呢。
线程的创建和启动:
(1)定义Thread
类的子类,并重写了该类的run()
方法,该run()
方法的方法就代表了线程需要完成的任务。因此把run()
方法称为线程执行体
(2)创建Thread
子类的实例,即创建了线程对象
(3)调用线程对象的start()
方法来启动该线程
源代码:
// 通过继承Thread类来创建线程类 public class FirstThread extends Thread { private int i; //重写run()方法,run()方法的方法体是线程执行体 public void run() { for(;i<100;i++) {//当线程类继承Thread类时,直接使用this即可获取当前数据 //Thread对象的getName()返回当前线程的名字 //因此可以直接调用getName()方法返回当前线程的名字 System.out.println(getName()+””+i); } } public static void main(String[] args) { for(int i=0;i<100;i++) { //调用Thread的currentThread()方法获取当前线程 System.out.println(Thread.currentThread().getName() +””+i); if(i==20) { //创建并启动第一个线程 new FirstThread().start(); //创建并启动第二个线程 new FirstThread().start(); } } } }
运行界面:
总结
以上就是本文的全部内容,希望对大家的学习和工作有所帮助。如果有疑问可以留言讨论。
相关文章
Java实现stream的三个常用方式(toMap,groupingBy,findFirst)
本文主要介绍了Java实现stream的三个常用方式,主要包括toMap,groupingBy,findFirst,具有一定的参考价值,感兴趣的可以了解一下2023-10-10SpringBoot集成SSM、Dubbo、Redis、JSP的案例小结及思路讲解
这个案例其实就是SpringBoot集成SSM、Dubbo、Redis、JSP,看起来感觉很繁琐,其实就是很简单,下面通过案例分析给大家讲解,感兴趣的朋友跟随小编一起看看吧2021-05-05springboot自动装配TypeNotPresentExceptionProxy异常排查解决
这篇文章主要为大家介绍了springboot自动装配TypeNotPresentExceptionProxy异常排查解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09Spring注解中@Configuration和@Component到底有啥区别
之前一直搞不清@Component和@Configuration这两个注解到底有啥区别,一直认为被这两修饰的类可以被Spring实例化嘛,最近终于弄明白了,这篇文章主要给大家介绍了关于Spring注解中@Configuration和@Component到底有啥区别的相关资料,需要的朋友可以参考下2023-04-04jackson 实现null转0 以及0转null的示例代码
这篇文章主要介绍了jackson 实现null转0 以及0转null的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09
最新评论