首页 > 其他分享 >线程

线程

时间:2023-08-24 10:12:28浏览次数:24  
标签:run Thread 创建 调度 start 线程

线程

1.多任务
2.多线程

线程就是独立的执行路径;main()称之为主线程,为系统的入口,用于执行整个程序;

3.程序,进程,线程
  1. 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;

  2. 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。

  3. 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;

  4. 线程会带来额外的开销,如cpu调度时间,并发控制开销。

5.线程的创建
  1. Thread class创建 ——》继承Thread类

  2. Runnable接口创建 ——》实现Runnable接口

  3. Callable接口创建 ——》实现Callable

6.Thread类创建
  1. 自定义线程类继承Thread类

  2. 重写run()方法,编写线程执行体

  3. 创建线程对象,调用start()方法启动线程

 

// 创建线程方式一:继承Thread类,重写run方法,调用start线程

// 线程开启不一定立即执行,需要由cpu调度
public class TestThread extends Thread{
   //run线程
   public void run(){
        // run方法程序
       for (int i = 0; i < 20; i++) {
           System.out.println("我在看代码————"+i);
      }
  }

   public static void main(String[] args) {
       //main线程,主线程
       TestThread testThread=new TestThread();
       //调用start方法
       testThread.start();
       for (int i = 0; i < 20; i++) {
           System.out.println("我在学习多线程——"+i);
      }
  }
}
 

标签:run,Thread,创建,调度,start,线程
From: https://www.cnblogs.com/yuan947022015/p/17653406.html

相关文章

  • lock解决线程安全问题,与synchronize区别,同步的三种方式
    packagecom.atjava.test;importjava.util.concurrent.locks.ReentrantLock;classWindow1implementsRunnable{privateintticket=100;privateReentrantLocklock=newReentrantLock();@Overridepublicvoidrun(){while(true)......
  • 进程、线程、协程
    进程内可开启多个线程,线程内可开启多个协程进程、线程可以利用cpu多核来并行,协程是切换成本低,不是并行。 ......
  • 【操作系统】2.进程和线程
    1.操作系统的多进程图像操作系统main函数中最后if(!fork()){init();},也就是main函数最后创建了第1个进程,init执行了shell(Windows)桌面。操作系统管理和组织进程都使用PCB(ProcessControlBlock),不同的程序的PCB放在不同的位置,用于记录该进程运行时的状态。操作系统对进程......
  • 什么是多线程,多线程的优劣?
    多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。多线程的好处:可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。也就是说允许单个程序创建多个......
  • java中创建线程的三种方法以及区别
    java中创建线程的三种方法以及区别 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用三种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程下面让我们分别来看看这三种创建线程的......
  • 线程池
    参考文档https://www.toutiao.com/i6820216970252648971/?timestamp=1611647531&app=news_article_lite&use_new_style=1&req_id=2021012615521001013003701233060951&share_token=d49da611-6e37-46ae-90ea-9a51d6e3ad7b&group_id=6820216970252648971ht......
  • 线程状态
    1)新建当用new关键字创建一个线程时,还没调用start就是新建状态。2)就绪调用了start方法之后,线程就进入了就绪阶段。此时,线程不会立即执行run方法,需要等待获取CPU资源。start()方法的作用是:启动一个分支线程,在JVM中开辟一个新的栈空间3)运行当线程获得CPU时间片后,就会进入......
  • java多线程使用详解与案例,超详细
    一、创建线程的方式1、继承Thread类让子类继承Thread线程类子类必须重写Thread类的run方法创建一个自己定义的线程对象调用start()方法启动线程//测试类/***1、让子类继承Thread线程类*/publicclassThreadTest1extendsThread{//2、子类必须重写Thread类......
  • Java 多线程处理 for 循环数据
    对于必须在for循环内进行查询的场景,可采用以下几种方式进行优化。1、主线程与子线程无先后顺序publicstaticvoidmain(String[]args)throwsInterruptedException{for(inti=0;i<5;i++){ThreadUtil.execAsync(()->{......
  • 多线程 问答
    1、怎么创建线程池用threadPoolExecutor去创建,核心线程数量,最大线程数量,保活时间,时间单位,工作队列publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,......