如何创建一个线程的生命周期?
如何通过 Runnable创建多线程接口?
多线程有三个特点-----了解线程的工作流程
1.随机性:同一时刻只有一个线程在执行;cpu的快速切换导致认为有多个线程在同时执行。
2.CPU分时调度:CPU分配给每个线程一个时间片。
eg:比如说,每个线程只能执行2秒,那么2秒后,就会切换下一个线程执行2秒。线程时间不足2秒的就提前终止,超过2秒的就下一次分配到了执行。
2.1 OS底层算法决定线程的执行顺序:FCFS(先来先执行,执行不完下一次)算法,SJS(第一次没执行完就下一次)
3.线程的状态:5个,新建、就绪、执行、阻塞、终止
3.1 线程新建会先去申请PCB,分配资源,将其转化为就绪状态插入到队列中,准备执行
3.2 线程只有 就绪 才会分配CPU去执行,执行过程因为一些原因会导致程序阻塞,阻塞后需要就绪才能继续执行。
3.3 执行完后就会终止
**线程启动的方式:启动线程的唯一方法就是通过Thread类的start()实例方法(API手册搜Thread,有两种方法的介绍和代码)。
线程跑起来的方法是run(),调用Thread类的static()方法时,会自动调用run()。
多线程的创建有两种方式:
1. 建立一个子类,继承Thread类,然后重写run()方法,创建子类对象,调用Thread的static()方法,实现线程的启动。
多线程,就是创建多个对象,都调用static()方法,就是多线程的实现。
Thread.currentThread()获取当前的线程对象
package Tread;
/*方法一*/
public class Tread01 {
public static void main(String[] args) {
Student a=new Student();
Student b=new Student();
Student c=new Student();
a.start();
b.start();
c.start();
}
}
class Student extends Thread{
public void run() {
for (int i=0;i<10;i++){
System.out.println(i+"="+Thread.currentThread());
}
}
}
2.通过接口Runnable的run()方法,实现run()方法的重写(run()里放的就是你需要执行的功能代码),
Thread(Rannable)方法将接口的实力类与Thread对接,再创建多个对象执行。
package Tread;
/*方法二*/
public class Thread02 {
public static void main(String[] args) {
Son a=new Son();
Thread b=new Thread(a);
}
}
class Son implements Runnable{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(i+Thread.currentThread().getName());
}
}
}
这个问题大了!
1.多线程的概念不只在Java中,生活中都随处可见,比如食堂打饭。
2.Java中多线程几个点:线程基础、生命周期、线程同步、线程池
3.一个线程的生命周期:5个阶段,包括:新建、就绪、运行、阻塞、销毁。
4.如何创建,这个不贴代码了,随便一搜都很多
多线程的意思就是多个工作可以同时处理,或者一个大的工作分成多个小的工作由多个线程同时处理,以提高工作效率和电脑资源的利用率。
举个例子,老师让抄写100遍课文,班里有50个同学,那么一个人只需抄写2遍。如果只有1个人,那这个人就得抄写100遍。1个人就相当于1个线程,当然这只是一个方面的例子。
如有帮助,请采纳一下,谢谢。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632