@苏苏¥
2021-05-21 18:04
采纳率: 100%
浏览 41
已采纳

什么是java多线程?

如何创建一个线程的生命周期?

如何通过 Runnable创建多线程接口?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 五叨鱼 2021-05-21 20:50
    已采纳

    多线程有三个特点-----了解线程的工作流程

    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 打赏 评论
  • BCS-点心 2021-05-21 18:09

    这个问题大了!

    1.多线程的概念不只在Java中,生活中都随处可见,比如食堂打饭。

    2.Java中多线程几个点:线程基础、生命周期、线程同步、线程池

    3.一个线程的生命周期:5个阶段,包括:新建、就绪、运行、阻塞、销毁。

    4.如何创建,这个不贴代码了,随便一搜都很多

    1 打赏 评论
  • qfl_sdu 2021-05-21 19:33

    多线程的意思就是多个工作可以同时处理,或者一个大的工作分成多个小的工作由多个线程同时处理,以提高工作效率和电脑资源的利用率。

    举个例子,老师让抄写100遍课文,班里有50个同学,那么一个人只需抄写2遍。如果只有1个人,那这个人就得抄写100遍。1个人就相当于1个线程,当然这只是一个方面的例子。

    如有帮助,请采纳一下,谢谢。

    1 打赏 评论
  • 有问必答小助手 2021-05-25 14:23

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题