Java笔记--多线程
1、线程的创建与运行(方式一):
--1)创建一个Thread的子类;
--2)重写Thread类的run()方法;
--3)创建一个子类的对象;
--4)调用线程的start()方法来启动线程,Java虚拟机将调用run()方法。
public class TestThread {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SubThread st = new SubThread();
        st.start();
        System.out.println("---MainThread---");
    }
}
class SubThread extends Thread{
    @Override
    public void run() {
        System.out.println("---SubThread---");
    }
}
2、Thread的常用方法:
--1)start(); //启动线程
--2)run(); //子线程要执行的代码写在该方法中
--3)currentThread(); //静态方法,调取当前线程
--4)getName(); //获取当前线程名称
--5)setName(); //设置当前线程名称
--6)yield(); //释放当前CPU执行权
--7)join(); //在A线程中调用B线程的join()方法,此时A线程停止执行,B线程开始执行,直到B执行完毕A再继续执行
--8)isAlive(); // 判断当前线程是否为活动的
--9)sleep(long l);//显示的让当前线程睡眠l毫秒
--10)线程通信:wait(),notify(),notifyAll()
--11)优先级:getPriority(),setPriority()
3、方式二:
--1)创建一个类,该类需实现Runnable接口;
--2)实现Runnable接口的抽象方法run();
--3)创建实现类对象;
--4)将此对象作为形参传递给Thread类的构造器中,创建Thread类对象;
--5)调用start()来启动线程。
4、方式二优于方式一,即实现的方式优于继承的方式,因为实现的方式避免了Java单继承的局限性而且更易于共享数据。
5、使用多线程的优点:
--1)提高应用程序的响应;
--2)提高计算机系统CPU的利用率;
--3)改善程序结构。
6、线程分类:1)守护线程;2)用户线程。
7、线程的生命周期:1)新建;2)就绪;3)运行;4)阻塞;5)死亡。
8、线程的同步:
--1)同步代码块;
synchronized(同步监视器){
  //需要被同步的代码
}
--2)同步方法:将操作共享数据的方法声明为synchronized。
9、死锁:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源。解决的方法:
--1)专门的算法、原则;
--2)尽量减少同步资源的定义。
10、线程的通信:
--wait():令当前线程挂起并放弃CPU、同步资源,使别的线程可访问并修改共享资源,二当前线程排队等候再次对资源的访问;
--notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待;
--notifyAll():唤醒正在排队等待资源的所有线程结束等待。
--注:上诉三个方法只有在synchronized方法或者synchronized代码块中才能调用,否则会出现异常(java.lang.IllegalMonitorStateException)
Java笔记--多线程的更多相关文章
- java笔记--多线程基础
		
多线程技术 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3889579.html "谢谢-- 在java中实现多线程技术 ...
 - 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
		
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
 - Java学习笔记-多线程-创建线程的方式
		
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
 - Java笔记(十九)……多线程
		
概述 进程: 是一个正在执行中的程序 每一个进程执行都有一个执行顺序,该执行顺序是一个执行路径,或者叫一个控制单元 线程: 就是进程中的一个独立的控制单元,线程在控制着进程的执行 一个进程中至少有一个 ...
 - [Java][读书笔记]多线程编程
		
前言:最近复习java,发现一本很好的资料,<Java2参考大全 (第五版)>  Herbert.Schildt.书比较老了,06年的,一些 ...
 - Java笔记15:多线程
		
Java实现多线程有两种方式:一是继承Thread类:二是实现Runable接口. 一.Thread实现 publicclass ThreadDemo2 { publicstaticvoid main ...
 - 2.1多线程(java学习笔记) java中多线程的实现(附静态代理模式)
		
一.多线程 首先我们要清楚程序.进程.线程的关系. 首先进程从属于程序,线程从属于进程. 程序指计算机执行操作或任务的指令集合,是一个静态的概念. 但我们实际运行程序时,并发程序因为相互制约,具有“执 ...
 - Java:多线程<一>
		
程序运行时,其实是CPU在执行程序的进程,为了提高工作效率一个进程可以有多个线程. Java的多线程: 其实我们之前就见过Java的线程,main就是Java的一个线程,还有另一个条线程总是和main ...
 - 跟着刚哥梳理java知识点——多线程(十六)
		
创建多线程第一种方式:① 继承:继承Thread.② 重写:重写Thread类的run()方法③ 创建:创建一个子类的对象④ 调用:调用线程的start()方法,启动此线程,调用run()方法 cla ...
 
随机推荐
- Windows驱动开发-DPC定时器
			
DCP是一种使用更加灵活的定时器,可以对任意间隔时间进行定时.DPC定时器的内部使用了一个定时器对象KTIMER,当你设定了定时器之后,从设定开始起经过这个时间之后操作系统会将一个DPC定时器的例程插 ...
 - Python学习笔记008
			
while循环 while 条件 : 执行 num =1 while num<=10: print(num) num+=1 1-100偶数 方法1 num =2 while num& ...
 - STM32L152笔记
			
一 段式液晶初始化停在while(LCD_GetFlagStatus(LCD_FLAG_RDY) == RESET)中不出来,网上给的原因和解决办法: 1 也RTC的时钟有关,需要先配置RTC时钟 2 ...
 - 一个Android音频文本同步的英文有声读物App的开发过程
			
转发: http://segmentfault.com/a/1190000003498111 “新概念英语”.“可可英语”.“亚马逊的audible有声书”.“扇贝听力”是我目前所知道的实现英文语音和 ...
 - 二、linux基础-路径和目录_用户管理_组_权限
			
2.1路径和目录1.相对路径:参照当前目录进行查找. 如:[root@localhost ~]# cd ../opt/hosts/备注:相对路径是从你的当前目录开始为基点,去寻找另外一个目录(或者 ...
 - Linux 长时间操作设置不断开
			
1.第一次尝试失败 修改/etc/ssh/sshd_config文件, 找到 ClientAliveInterval 0 ClientAliveCountMax 3 并将注释符号("#&qu ...
 - node.js是什么,node.js创建应用
			
简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端Java ...
 - C语言程序设计-现代方法(笔记3)
			
第十三章 字符串 1.字符串字面量(13.1) 字符串字面量:用一对双引号括起来的字符序列.字符串字面量可以像字符常量一样包含转义字序列. 在字符串字面量中小心使用八进制和十六进制的转义序列. 字符串 ...
 - Java入门程序“hello,world!”
			
1.程序开发步骤说明 开发环境已经搭建完毕,可以开发我们第一个Java程序了. Java程序开发三步骤:编写.编译.运行.(图片介绍) 2.编写Java程序 新建一个普通的记事本,给其命名为Hel ...
 - 定位(left 、right 、top 、 bottom)、padding、margin 值设为百分比值时
			
定位(left .right .top . bottom): top 为例 right 为例 padding.margin : 当padding.margin 值设为百分比值时,其百分比会相对于父元素 ...