JAVA线程笔记。
继承thread类 并覆写thread类中的run()方法。
class 类名称 extents Thread{
public void run(){}
}
实现Runble接口的run方法
线程的start()方法
public synchronized void start(){
if(threadStatus!=0){
throw new IllegalThreadStateException();
}
start0();
}
private native void start0();
native表示调用本机的操作系统函数,多线程需要底层OS支持
实现Runnable接口
class 类名称 implements Runnable{
public void run()
}
Thread(Runnable)
MyThread my1=new MyThread([实现Runnable的类的对象])
Thread t1=new Thread(my1)
t1.start()
继承Thread类不能资源共享。
假设有两个继承Thread类的类 A和B
因为实例化的A,B的对象是不同的实例,分别执行自已的start方法。
实现Runnable的接口的类C
是将C的实例c传入Thread,得到一个Thread对象
不同的Thread 都有c的属性,执行的是C的方法
所以c。中的数据可共享。
线程的实现和调用,是经常出现的笔记题。
直接调用run方法,则方法在当前线程上执行
调用start方法,才会新建一个独立的线程。
android消息队列有关于线程的应用。叫什么忘记了,调用的就是run方法。
Thread getName 取得线程名
setName 设置线程名 没设,自动分配名称 Thread-1
isAlive 测试线程是否已经启动
join 让一个线程强制运行,线程运行期间,其他线程无法运行。
sleep 休眠
interrupt 中断
setDaemon 精灵线程,又叫后台线程, 只要前台有一个线程在运行,整个JAVA进程都不会消失。设置一个后台线程,即使JAVA进程结束,后台线程依然运行。
优先级 ,setPriority MIN PRIORITY 最低 1
NORM 中等 5
MAX 最高 10
Thread.currentThread.yield 线程礼让
yield在C#中是不同的用途,记得是实现Ienum接口时用。
1同步代码块 synchronized(同步对象){
需要同步的代码}
2同步方法 synchronized void sale(){}
访问权限 final static synchronized 返回值类型 void 方法名(参数类型,名秒钟) throws exception
{
return 返回值
}
Object 对线程的支持。
wait
notify
notyfyAll
生产者与消费者。
upspend 暂时挂起
resume 恢复挂起
stop 停止
这三入不推荐用,容易产生死锁
停止线程运行,设置标志位实现
class MyThread inmplements Runnable{
private boolean flag=true;
public void run (){
int i=0;
while(this.falg){
}
}
}
public void stop(){
this.flag=false;
}
JAVA线程笔记。的更多相关文章
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- Java系列笔记(5) - 线程
我想关注这个系列博客的粉丝们都应该已经发现了,我一定是个懒虫,在这里向大家道歉了.这个系列的博客是在我工作之余写的,经常几天才写一小节,不过本着宁缺毋滥的精神,所有写的东西都是比较精炼的.这篇文章是本 ...
- java学习笔记15--多线程编程基础2
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...
- java学习笔记14--多线程编程基础1
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...
- Java开发笔记(九十八)利用Callable启动线程
前面介绍了如何利用Runnable接口构建线程任务,该方式确实方便了线程代码的复用与共享,然而Runnable不像公共方法那样有返回值,也就无法将线程代码的处理结果传给外部,造成外部既不知晓该线程是否 ...
- Java开发笔记(一百零四)普通线程池的运用
前面介绍了线程的基本用法,以及多线程并发的问题处理,但实际开发中往往存在许多性质相似的任务,比如批量发送消息.批量下载文件.批量进行交易等等.这些同类任务的处理流程一致,不存在资源共享问题,相互之间也 ...
- Java开发笔记(一百零三)线程间的通信方式
前面介绍了多线程并发之时的资源抢占情况,以及利用同步.加锁.信号量等机制解决资源冲突问题,不过这些机制只适合同一资源的共享分配,并未涉及到某件事由的前因后果.日常生活中,经常存在两个前后关联的事务,像 ...
- Java开发笔记(九十七)利用Runnable启动线程
前面介绍了线程的基本用法,按理说足够一般的场合使用了,只是每次开辟新线程,都得单独定义专门的线程类,着实开销不小.注意到新线程内部真正需要开发者重写的仅有run方法,其实就是一段代码块,分线程启动之后 ...
- Java开发笔记(九十六)线程的基本用法
每启动一个程序,操作系统的内存中通常会驻留该程序的一个进程,进程包含了程序的完整代码逻辑.一旦程序退出,进程也就随之结束:反之,一旦强行结束进程,程序也会跟着退出.普通的程序代码是从上往下执行的,遇到 ...
随机推荐
- 使用linux服务器安装wordpress博客详细教程
前言 最近读了<软技能:代码之外的生存指南>,这本书给了我很大的启示.之前虽然知道作为一个程序员,应该拥有自己的博客,以便于提升自己的知名度,但是并没有了解的过于详细.这本书描写博客的作用 ...
- Java中常用的API(三)——缓冲区字符串
前两节中分别介绍了Object和String,这一节主要介绍StringBuffer和StringBuilder. StringBuffer 由于String是不可变的,所以导致String对象泛滥, ...
- OpenMP笔记(一)
原文:https://www.bearoom.xyz/2019/02/17/openmp1/ 并行技术有很多种,OpenMP算是比较简单可用的一种,OpenMP全称是 Open Multi-Proce ...
- Scala(一)——scala+Idea环境配置
Java虚拟机的确是很强大,有很多计算机语言可以运行在虚拟机上,完善了虚拟机上多语言编程. 近年来,大数据云计算,大数据的火爆也让一些小众语言火了起来,如Python,Scala等.这些语言编写简单, ...
- 收藏基本Java项目开发的书
一.Java项目开发全程实录 第1章 进销存管理系统(Swing+SQL Server2000实现) 第2章企业内部通信系统(Swing+JavaDB实现) 第3章 企业人事管理系统( Swing+H ...
- css清除select的下拉箭头样式
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 题解 P2831 【愤怒的小鸟】
题目 我的天,这题是真的卡精度...... 主要是精度很不好处理,经本蒟蒻测验,精度在\(10^{-6}\)会比较好优雅 [分析] 对于这种某个变量特别小\((\leq 31)\)的题目,本蒟蒻第一反 ...
- [原]调试实战——使用windbg调试TerminateThread导致的死锁
原调试debugwindbg死锁deadlock 前言 项目里的一个升级程序偶尔会死锁,查看dump后发现是死在了ShellExecuteExW里.经验少,不知道为什么,于是在高端调试论坛里发帖求助, ...
- ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction hihocoder1870~1879
ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction hihocoder1870~1879 A 签到,dfs 或者 floyd 都行. #i ...
- vim下看C++代码
看C++代码, 缺少合适的编辑器,捣鼓vim. 安装Vundle, 用于插件管理 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vi ...