Java基础——线程总结
Java基础——线程总结
一、线程是什么?
线程:一个程序里不同的运行路径。
二、怎样创建线程?
两种方法创建线程:
第一种
(1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享
(2)Thread myThread = new Thread(…) //參数为Runnable接口类型
(3)Runnable中仅仅有一个方法
public void run(){……} //用以定义线程执行体
另外一种
(1)定义一个Thread的子类并重写run()方法
class MyThread extends Thread {
public void run(){……}
}
(2)生成该类的对象
MyThread myThread = new MyThread (…)
三、能够对线程做哪些控制?
|
方法 |
功能 |
|
bool isAlive(myThread Thread) |
推断线程是否还“活”着,即线程是否还未终止。 |
|
int getPririty() |
获得线程的优先级数值 |
|
void setPriority(int NewPriority) |
设置线程的优先级数值 |
|
Thread.sleep(int sleepTime) |
指定当前线程的睡眠时间(单位:毫秒) |
|
void join() |
将当前线程与上一主线程合并,即A线程的a()方法调用了B线程。则让B线程结束,再恢复A线程继续运行。 |
|
void yield() |
让出CPU,当前线程进入就绪队列等待调度。 |
|
void wait() |
当前线程进入对象的wait pool。 |
|
void notify()/void notifyAll() |
唤醒对象的wait pool中的一个/全部等待线程。 |
四、辨析wait()与sleep()
之所以对这两个方法辨析,它们有个共同点——暂停线程的运行。但要说起它们的不同点。那还是挺多的。
不同点:
(1)Wait()是Object对象的方法;而Sleep(int sleepTime)是Thead()线程的方法。
(2)Wait()运行后,当前对象的锁就会被释放;而Sleep(int)运行后,锁仍然在其手中。
(3)Wait()不须要指定停留时间,须要notify()方法或notifyAll()方法将其唤醒;而Sleep(int),当中int指定睡眠的毫秒数,仅仅有在超过这个时间后。醒过来,当再次获得时间片之后,才干继续运行。
Java基础——线程总结的更多相关文章
- Java基础-线程安全问题汇总
Java基础-线程安全问题汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存泄漏和内存溢出(out of memory)的区别 1>.什么是内存溢出 答:内存溢出指 ...
- Java基础-线程操作共享数据的安全问题
Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...
- 《Java基础——线程类》
Java基础--线程类 一.线程的创建之Thread类: 规则: 通过声明一个新类作为子类继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run()方法 ...
- JAVA基础—线程池
推荐文章java多线程基础 线程池概述 为什么要使用线程池 1.服务器创建和销毁工作线程的开销很大 2.如果频繁的创建和销毁线程会导致频繁的切换线程,因为一个线程被销毁后,必然要把CPU转让给另一个已 ...
- java基础—线程(一)
一.线程的基本概念
- java基础—线程(二)
一.线程的优先级别
- Java基础--线程创建方式
线程的创建主要有两种形式,通过继承Thread或者实现Runnable接口,本质上没有太大区别. /** * @date: 2019/7/16 **/ public class ThreadOne i ...
- Java基础-线程与并发1
线程与并发 Thread 基本概念 程序: 一组计算机能识别和执行的指令 ,是静态的代码. 进程: 程序的一次运行活动, 运行中的程序 . 线程: 进程的组成部分,它代表了一条顺序的执行流. 进程线程 ...
- 面试题-Java基础-线程部分
1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列.一个进程可以有多个线程.线程又叫做轻量级进程. 2.创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可 ...
随机推荐
- Python开发基础-Day2-流程控制、数字和字符串处理
流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...
- [BZOJ4836]二元运算(分治FFT)
4836: [Lydsy1704月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MBSubmit: 578 Solved: 202[Submit][Stat ...
- MySort
实验概述: 本次试验的内容:模拟实现Linux下Sort -t : -k 2的功能.参考Sort的实现.提交码云链接和代码运行截图. 截图如下 实验过程 在实验课上真的很崩溃,可以说脑子里一团乱麻,下 ...
- 通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
1.通过scrapy内置的ImagePipeline下载图片到本地 2.获取图片保存本地的地址 1.通过scrapy内置的ImagePipeline下载图片到本地 1)在settings.py中打开 ...
- NHibernate官方文档中文版--ISessionFactory的配置(ISessionFactory Configuration)
由于NHibernate是被设计应用在许多不同环境中的,因此它存在很多配置参数.幸运的是,这些参数大多都有合理的默认值,而且NHibernate发布的时候伴随着一个App.config 例子(可在sr ...
- 如何通俗理解——>集群、负载均衡、分布式
转自:周洲 (Julie) 在“高并发,海量数据,分布式,NoSql,云计算......”概念满天飞的年代,相信不少朋友都听说过甚至常与人提起“集群,负载均衡”等,但不是所有人都有机会真正接触到这些技 ...
- Inno Setup入门(二十)——Inno Setup类参考(6)
http://379910987.blog.163.com/blog/static/3352379720112515819485/ 存储框 存储框也是典型的窗口可视化组件,同编辑框类似,可以输入.显示 ...
- Sysfs文件系统与Linux设备模型
转:http://www.360doc.com/content/11/1218/16/1299815_173168170.shtml sysfs把连接在系统上的设备和总线组织成为一个分级的目录及文件, ...
- 汇编语言---GCC内联汇编
转:http://www.cnblogs.com/taek/archive/2012/02/05/2338838.html GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是"GCC ...
- FORM-加载前指定日期时间格式
PRE-FORM -- Standard date format --BEGIN set_application_property(DATE_FORMAT_COMPATIBILITY_MODE, ' ...