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开发笔记(九十六)线程的基本用法
每启动一个程序,操作系统的内存中通常会驻留该程序的一个进程,进程包含了程序的完整代码逻辑.一旦程序退出,进程也就随之结束:反之,一旦强行结束进程,程序也会跟着退出.普通的程序代码是从上往下执行的,遇到 ...
随机推荐
- OpenCV和Qt的图像格式互转
做图像处理的时候经常使需要用到opencv的,这应该是免费的图像处理库中用得最广泛而且最好用的库了吧.然后有时候想用界面来展示点东西的时候,我们就需要编写个界面,编写界面的方法千千万,弱水三千我只取一 ...
- Momentum
11.6 Momentum 在 Section 11.4 中,我们提到,目标函数有关自变量的梯度代表了目标函数在自变量当前位置下降最快的方向.因此,梯度下降也叫作最陡下降(steepest desce ...
- Animate.css 一款强大的预设css3动画库
Animate.css是一个有趣的,跨浏览器的css3动画库.很值得我们在项目中引用. 用法 1.首先引入animate css文件 <head> <link rel="s ...
- Java基础二(2020.1.14)
学习内容: 1.Java运算符:赋值运算符,算术运算符,关系运算符,逻辑运算符,条件运算符 2.java流程控制:顺序,选择 1.java输入 Scanner s = new Scanner(Syst ...
- latex学习笔记----基本知识、文档排版
1.空格和制表符等空白字符视为相同的空白距离,多个连续的空白字符等同为一个字符. 2.# $ % ^ _ { } ~ 在这些字符前面加上反斜线,就可以在文本中得到它们. 反斜线\不 ...
- c++语法(2)
#include<iostream> #include<windows.h> using namespace std; class Parents { public: virt ...
- 小白学习之pytorch框架(3)-模型训练三要素+torch.nn.Linear()
模型训练的三要素:数据处理.损失函数.优化算法 数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torc ...
- uniapp结合小程序第三方插件“WechatSI”实现语音识别功能,进而实现终端控制
最近在用soket实现终端控制器的功能,然后就想用语音控制,这样显得更AI WechatSI在manifest.json中配置: 在vue中插入如下展示代码: <view class=" ...
- 当年写的C代码
#ifndef KMIN_H_ #define KMIN_H_ /******************************************************************* ...
- You are attempting to install the android sdk inside your android studio installation
原因 我的android studio文件名为AndroidStudio 我的android studio sdk文件名为AndroidStudioSDK 所以系统把AndroidStudioSDK自 ...