多线程(一)

一、什么是线程,什么是进程
1.进程是一个应用程序,资源分配的基本单位
2.线程是一个进程中的执行场景/执行单元;一个进程可以启动多个线程,是程序执行的基本单位

二、对于java程序来说,当在DOS窗口输入命令后,会先启动jvm,而jvm就是一个进程,同时再启动一个垃圾回收线程负责回收,至少再目前的java程序中,至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程

三、进程A和进程B的内存独立不共享

四、线程A和线程B,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈。假设有十个线程,会有10个栈空间,每个栈都是独立的互不干扰,各自执行各自的,这就是多线程并发。java中的多线程机制目的就是为了提高程序的处理效率

五、执行一个线程就是执行该线程的run()方法中的代码

二、创建线程的两种方式

//定义线程类
Public class Mythread extends Thread{
	Public void run(){
		
	}
}
//创建线程对象
MyThread t = new MyThread();
//启动线程
t.start();
//定义一个可运行的类
Public class MyRunnable implements Runnable{
	Public void run(){
		
	}
}
//创建线程对象
Thread thread = new Thread(new MyRunnable())
//启动线程
Thread.start();

三、关于线程调度
1.常见的调度模型
(1)抢占式调度模型
那个线程的优先等级高,抢到的CPU时间片的概率就高一些
java采用抢占式调度模型
(2)均分式调度模型
平均分配CPU时间片,,每个线程占有的CPU时间片长度一样
二、java中提供了哪些方法关于线程调度
int getPriority()
获取线程的优先级。
void setPriority(int newPriority)
设置此线程的优先级。

最低优先级1,默认优先级是5,最高优先级是10

static void	yield()
	对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。
此方法的执行会让当前线程从"运行状态"回到"就绪状态" 

void	join()
	合并线程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值