专注于 JetBrains IDEA 全家桶,永久激活,教程
提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,等工具的永久激活

javase线程(线程与进程、线程的实现方式、线程并发库、线程池)

1、线程与进程的区别

进程:

(1)拥有资源的基本单位。

(2)可独立调度和分派的基本单位。

(3) 开销较大

线程:

(1)线程本身拥有少量资源,它可以共享所属进程的资源。

(2)独立运行和调度的基本单位。

(3)轻量级的进程,开销小

2、线程与进程的关系

一个进程中同时存在几个执行体。单线程是按照函数的顺序执行,多线程是多段代码同时交替运行。CPU的一个核,在某一时刻只能执行一个线程,CPU在多个线程之间快速地切换(线程的调度算法)。

3、线程的实现方式

(1)继承Thread接口:

class Mythread extends Thread {
    public void run(){
         System.out.println("我是一个线程!!");
    }
    public static void main(String args[]){
        Thread thread=new Thread(new Mythread());
        thread.start();//启动,执行的是run方法
    }
}

(2)实现Runnable接口:

class Mythread implements Runnable {
   public void run(){
       System.out.println("线程执行了!!");
   }
   public static  void  main(String args []){
       Thread thread=new Thread(new Mythread());
       thread.start();
   }
}

(3)两种实现方式的对比:

以实现Runable接口的方式创建线程比继承Thread类有很大的优越性,因为类不能多重继承,即一个类只能继承一个类,那么如果该类已经继承了一个类,就不能实现多线程了,但是可以通过实现Runable接口的方式实现多线程。

4、线程并发库

(1)简介:

JDK5中增加了Doug Lea的并发库,这一引进给Java线程的管理和使用提供了强大的便利性,java.util.current包中提供了对线程优化、管理的各项操作,使得线程的使用变得得心应手,该包提供了线程的运行,线程池的创建,线程生命周期的控制。

(2)线程池:

分类:

newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需求可灵活回收空闲线程,若无可回收,则新建线程
newFixedThreadPool:创建一个定长线程池,可控制线程的最大并发数,超出的线程会在线程池中等待。
newScheduleThreadPool: 创建一个定长线程池,支持定时及周期性任务处理
newSingleThreadScheduledExecutor:创建一个单线程化的线程池,他只用唯一的工作栈来执行任务

使用:

class Mythread implements Runnable {
   public void run(){
       System.out.println(Thread.currentThread().getName());
   }
   public static  void  main(String args []){
           ExecutorService executorService = Executors.newFixedThreadPool(3);// 
           // Executors:线程池创建工厂类,调用方法返回线程池对象
           executorService.submit(new Mythread());
           executorService.submit(new Mythread());
           executorService.submit(new Mythread());
       }
}
pool-1-thread-1
pool-1-thread-2
pool-1-thread-3

好处:

限制线程的个数,不会导致由于线程过多导致系统运行缓慢,甚至崩溃

节省了资源:我们用两种方式创建的线程,在使用后都会被销毁,频繁地创建和销毁会造成时间和资源的浪费。线程池是一个能够容纳多个线程的容器,里面的线程可以反复使用。

文章永久链接:https://tech.souyunku.com/22835

未经允许不得转载:搜云库技术团队 » javase线程(线程与进程、线程的实现方式、线程并发库、线程池)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们