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开发笔记(九十六)线程的基本用法
每启动一个程序,操作系统的内存中通常会驻留该程序的一个进程,进程包含了程序的完整代码逻辑.一旦程序退出,进程也就随之结束:反之,一旦强行结束进程,程序也会跟着退出.普通的程序代码是从上往下执行的,遇到 ...
随机推荐
- Django2.0——Form组件简单总结
Django提供了一个Form组件来配和前端的表单进行使用,Form有两个强大的功能,分别是生成HTML代码和验证数据的合法性.通常我们不会用其第一个功能,因为前端的设计可以做出更加精美且多样的表单页 ...
- 超级顽固的流方式读取doc,docx乱码问题
因为工作中需要一个把doc或者docx的office文档内容,需要读取出来,并且也没展示功能.代码中第一考虑可能就是通过读取流方式,结果写了以后,各种乱码,百科的解决方案也是千奇百怪,第一点:可能是文 ...
- 学习Unet的一些过程
毕业设计的项目,需要用到手机作为控制端,这就需要用到Unity的网络模块. 因为只会设计到几个简单的按钮命令,所以不打算做多么复杂的功能,一开始打算用C#的Socket编程,但是考虑到多线程的关系觉得 ...
- jquery时钟
<script type="text/javascript"> function getDate(){ var mydate = new Date(); //时间对象 ...
- python 运算符 取余 取商 in not in
#运算符sum = 9//2 #取商print(sum) sum = 9%2 #取余print(sum) #inname1 = '小林'name2 = '林倩'if '林' in name1: pri ...
- Single设计模式
JavaSE基础中学习的single设计模式复习: * 单列设计模式概念理解:用程序实现在存储中只能有一个对象. * * 恶汉式实现思路分析: * 1.如何实现类不能被其他人多次创建呢? * 实现: ...
- Myeclipse 10/2014 配置插件(svn、maven、properties、velocity)的方法
一.配置SVN详细图解 什么是SVN? 管理软件开发过程中的版本控制工具. 下面会以两种方式来介绍怎么安装svn,myeclipse安装SVN插件步骤,以myeclipse 2014为例,第一种是最常 ...
- 了解SSL证书从HTTPS开始 开发者绕不开的“劫”
微信小程序上线已经有很长一段时间了,而开发者在接入小程序的过程中,会遇到一些问题,例如小程序要求必须通过HTTPS完成服务端通信,开发者需搭建HTTPS服务,进行 SSL 证书申请.部署,完成HTTP ...
- 四十二、LAMP与LNMP web架构深度优化实战-第一部
1.nginx.conf配置文件基本参数优化 1.1 隐藏nginx header内版本号信息 一些特定的系统及服务漏洞一般都和特定的软件版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信 ...
- 四十一、LAMP与LNMP加速与缓存优化进阶实战下部
一.配置,在nginx和apache所在的服务器中: 1.配置:cd /application/php/lib/php.ini 1)extension_dir="/application/p ...