Java-多线程

本文介绍了进程和线程的基本概念,包括它们的特点、状态及调度方法,并探讨了两者之间的联系与区别。此外,还详细讲解了Java中创建线程的方式及多线程的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识线程

1.进程:

       进程(Process)是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个过程,这个过程也是进程本身从产生、发展至消亡的过程。 操作系统同时管理一个计算机系统中的多个进程,让计算机系统中的多个进程轮流使用CPU资源,或者共享操作系统的其他资源。

进程有如下特点:

·进程是系统运行程序的基本单位。

·每一个进程都有自己独立的一块内存空间、一组系统资源。

·每一个进程的内部数据和状态都是完全独立的。

2.线程:(核心级线程--------用户级线程)

        线程是进程中执行运算的最小单位,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。

        线程是进程内部的一个执行单元,是可完成一个独立任务的顺序控制流程,如果在一个进程中同时运行多个线程,用来完成不同的工作,则称之为多线程

 线程的五个状态:  创建、就绪、阻塞、运行、死亡


线程调度的方法:
setPriorirty(int grade)      设置线程优先级
sleep(long millis)             线程的休眠(静态方法)
Join()                          线程的强制执行
yield()                             线程的礼让(仅仅只是礼让的可能)

线程和进程的联系与区别:

->一个进程中至少要有一个线程。

->资源分配给进程,同一进程的所有线程共享该进程的所有资源。

->处理机分配给线程,即真正在处理机上运行的是线程。

3.多线程的优势

->充分利用CPU的资源。

->简化编程模型。

->带来更好的用户体验。

 

主线程

->main()方法即为主线程入口

->产生其他子线程的线程

->必须最后完成执行,因为它执行各种关闭动作

public static void main(String args[]) {

  Thread t= Thread.currentThread();            ---------------->获得主线程对象

  System.out.println("当前线程是: "+t.getName());

  t.setName("MyJavaThread");                     ----------------------->设置线程名

  System.out.println("当前线程名是: "+t.getName());        -------------->获取线程名

在java中创建线程的两种方式
继承java.lang.Thread类
实现java.lang.Runnable接口

使用线程的步骤
1.定义线程-》2.创建线程对象-》3.启动线程-》4.终止线程

线程池所在包java.util.concurrent.
顶级接口时Executor,真正的线程池接口时ExecutorService.
java.util.concurrent.Executors类提供创建线程池的方法。
newCachedThreadPool():创建一个可缓存的线程池,有任务时才创建新任务。
newSingleThreadExecutor():创建一个单线程池。
newFixedThreadPool(int n Threads):创建一个固定长度的线程池,空闲线程会一只保留。参数nThread设定线程池中线程的数目。
newScheduledThreadPool(int corePoolSize):创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务。

线程调度指按照特定机制为多个线程分配CPU的使用权
setPriority(int  newPriority)        更改线程的优先级

static void sleep(long millis)      在指定的毫秒数内让当前正在执行的线程休眠

void join()                                  等待该线程终止

static void yield()                       暂停当前正在执行的线程对象,并执行其他线程

void interrupt()                          中断线程

boolean isAlive()                       测试线程是否处于活动状态
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值