Java基础_线程

线程

线程:依赖于进程的执行,线程是进程使用CPU的基本单位。
分为 单线程:一进程,一线程
多线程:一进程多线程,共享资源(方法区)栈内存独立
进程:当前正在执行的程序,代表一个程序在内存中的一块执行区域
多进程:同一个时段,执行多个任务;同一个时刻执行一个任务
多进程并不能提高程序的执行速度,提高了cpu的利用率
多核能提高多进程
线程实现方式:JVM启动程序—主线程—调用main方法
Java线程调度模式:
抢占调度模式,优先调用优先级别高的,级别一样的随机
JVM支持多线程
启动程序,启动一个主线程和垃圾回收器

实现多线程有2种方式
方法一:继承Thread类

创建Thread的子类
重写run方法
创建该类对象的 .start方法
方法二:实现runnable接口
创建类接口runnable
线程类的currentThread方法
创建线程执行目标类对象
使用线程运行目标类对象创建Thread对象
启动线程 .start方法

有关Thread的方法

设置线程优先级,优先级越高,抢占CPU的能力越大。
优先级越高可以先运行完,但并不代表每一次都是最早运行完。

//设置优先级
thread1.setPriority(6)
//获得优先级:默认为5
int a=thread2.getPriority() 
线程加入
join();
//线程my
my.join()
//先后顺序是等my运行完之后才运行join之后的,join放在start后面
线程礼让
yield()
守护线程

将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。

setDaemon()

thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。
在Daemon线程中产生的新线程也是Daemon的。
守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。

线程中断
interrupt()

猜你喜欢

转载自blog.csdn.net/weixin_40197494/article/details/80613755
今日推荐