Java学习笔记--线程day01
2024-09-01 22:35:26
线程的概念:一个线程是进程的顺序执行流;
同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被称为轻负荷进程。一个进程中可以有多个线程。
进程与线程的区别:
线程的划分程度小于进程,使得多线程程序并发性高。
进程在执行过程中有独立的内存单元,而多个线程共享内存,极大的提高了程序的运行效率。
执行过程中两者的区别在于:每个独立的线程有一个程序运行的入口、顺序执行序列、和程序的出口。
线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看:多线程的意义在于在一个应用程序中,有多个执行部分可以同时执行,但操作系统并没有将多个线程看作多个独立的应用来实现进程的调度和管理以及资源分配。
线程的创建与使用:
创建线程方式: 1.可以通过继承Thread类来创建线程
2.可以通过实现runnable接口来创建线程
3.匿名内部类的方式
1:
*class MyThread01 extends Thread{
*public void run(){ //这个方法的方法体就是线程要干的事情,下同
*}
*}
2:
*class MyThread02 implements Runnable{
* @Override
* public void run() { //必须重写继承的接口中的抽象方法
* // TODO Auto-generated method stub
* }
* public void run() { //必须重写继承的接口中的抽象方法
* // TODO Auto-generated method stub
* }
3:
*Thread t3=new Thread(){
* public void run(){
*
* }
*};
* public void run(){
*
* }
*};
运行线程:
1:
*Thread t1=new MyThread01();
*t1.start();
2:
*Runnable t2=new MyThread03();
*t2.start();
3:
*t3.start();
线程的优先级与设置线程的优先级:
setPriority(int i):分为十个级别(1-10),1最高,10最低;级别越高,获取时间片的概率越大。
setPriority(int i):分为十个级别(1-10),1最高,10最低;级别越高,获取时间片的概率越大。
1:t1.setPriority(i);
2:t2.setPriority(i);
3:t3.setPriority(i)
2:t2.setPriority(i);
3:t3.setPriority(i)
守护线程与设置守护线程:
守护线程在本质上与普通线程没有区别,只需通过Thread提供的方法来设置即可:
void setDaemon(boolean) 当参数为true时该线程为守护线程
守护线程的特点:
当进程中只剩下守护线程时,所有守护线程强制终止。
sleep(long ms)方法:
使当前的线程进入阻塞状态,持续ms毫秒,之后线程会进入Runnable状态,等待重新分配时间片。
该方法需要抛出一个异常,所以需要用try{}catch(){}捕获这个异常。
最新文章
- UNIX历史和标准
- 关于Html编码问题,例如字符:&;#183;
- SQLServer User and Login Tips
- RECT 数据结构
- 结构类模式(二):桥接(Bridge)
- Codeforces Round #345 (Div. 1) B. Image Preview
- 使用Systrace分析UI性能
- 拷贝出你GAC里面的DLL文件
- js颜色转换
- ng动态显示和隐藏
- Castle Windsor 学习-----Installer的几种安装方式
- OnsenUI 前端框架(三)
- NOI2001炮兵阵地
- 基于 EntityFramework、Autofac 的 UnitOfWork 框架(一)
- 【Linux】Swap与Memory
- Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
- linux系统安全审计简单设置
- js 判断l对象类型
- 利用POST重启路由器,一直无法实现,求帮助
- asp.net mvc maproute定义可变数量的自定义片断变量