黑马程序员——java 多线程复习笔记
2013-08-17 12:00
190 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
java多线程复习笔记
1、进程与线程
进程:是一个正在执行中的程序。
每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。
线程:就是进程中的一个独立的控制单元。
线程在控制着进程的执行。
一个进程中至少有一个线程。
2、java中实现多线程有两种手段,一种是继承Thread,另一种是实现Runnable接口。
3、继承Thread
创建线程的第一种方式:继承Thread类。
步骤:
1,定义类继承Thread。
2,复写Thread类中的run方法。
目的:将自定义代码存储在run方法。让线程运行。
3,调用线程的start方法,
该方法两个作用:启动线程,调用run方法。
*继承Thread类实现多线程
——正确地启动线程要用start()方法,不能用run()直接调用方法
*实现Runnable接口
创建线程的第二种方式:实现Runable接口
步骤:
1,定义类实现Runnable接口
2,覆盖Runnable接口中的run方法。
将线程要运行的代码存放在该run方法中。
3,通过Thread类建立线程对象。
4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
为什么要将Runnable接口的子类对象传递给Thread的构造函数。
因为,自定义的run方法所属的对象是Runnable接口的子类对象。
所以要让线程去指定指定对象的run方法。就必须明确该run方法所属对象。
5,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
4、同步与死锁
——同步是指多个操作在同一个时间段内只能有一个线程进行,其他进程要等待此线程完成之后才可以继续执行。
——解决资源共享恶同步操作,可以使用同步代码块和同步方法两种方式完成
——同步代码块必须制定一个需要同步的对象,但一般都将当前对象(this)设置成同步对象。
*使用同步代码块解决同步问题
——死锁
同步中嵌套同步
5、总结
(1)线程是指程序的运行流程,多线程机制可以同时运行多个程序块,使程序运行效率更高。
(2)run()方法是定义在Thread类中的一种方法,因此把线程的程序代码编写在run()方法内所做的就是覆写的操作。
(3)Runnable接口中声明了抽象的run()的方法,因此必须在实现Runnable接口的类中明确定义run()方法。
(4)在每一个线程创建和消亡之前,均会处于创建、就绪、运行、阻塞、终止状态之一
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
java多线程复习笔记
1、进程与线程
进程:是一个正在执行中的程序。
每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。
线程:就是进程中的一个独立的控制单元。
线程在控制着进程的执行。
一个进程中至少有一个线程。
2、java中实现多线程有两种手段,一种是继承Thread,另一种是实现Runnable接口。
3、继承Thread
创建线程的第一种方式:继承Thread类。
步骤:
1,定义类继承Thread。
2,复写Thread类中的run方法。
目的:将自定义代码存储在run方法。让线程运行。
3,调用线程的start方法,
该方法两个作用:启动线程,调用run方法。
*继承Thread类实现多线程
class MyThread extends Thread { private String name; public MyThread(String name) { this.name = name; } public void run() { for(int i=0;i<10;i++) { System.out.println(name + "运行,i" + i); } } } public class ThreadDemo { public static void main(String[] args) { MyThread mt1 = new MyThread("线程A "); MyThread mt2 = new MyThread("线程B "); mt1.start(); mt2.start(); } }
——正确地启动线程要用start()方法,不能用run()直接调用方法
*实现Runnable接口
创建线程的第二种方式:实现Runable接口
步骤:
1,定义类实现Runnable接口
2,覆盖Runnable接口中的run方法。
将线程要运行的代码存放在该run方法中。
3,通过Thread类建立线程对象。
4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
为什么要将Runnable接口的子类对象传递给Thread的构造函数。
因为,自定义的run方法所属的对象是Runnable接口的子类对象。
所以要让线程去指定指定对象的run方法。就必须明确该run方法所属对象。
5,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
class MyThread implements Runnable { private String name; public MyThread(String name) { this.name = name; } public void run() { for(int i=0;i<10;i++) { System.out.println(name + "运行,i" + i); } } } public class ThreadDemo { public static void main(String[] args) { MyThread my1 = new MyThread("线程A "); MyThread my2 = new MyThread("线程B "); Thread t1 = new Thread(my1); Thread t2 = new Thread(my2) t1.start(); t2.start(); } }
4、同步与死锁
——同步是指多个操作在同一个时间段内只能有一个线程进行,其他进程要等待此线程完成之后才可以继续执行。
——解决资源共享恶同步操作,可以使用同步代码块和同步方法两种方式完成
——同步代码块必须制定一个需要同步的对象,但一般都将当前对象(this)设置成同步对象。
*使用同步代码块解决同步问题
class MyThread implements Runnable { private String name; public MyThread(String name) { this.name = name; } public void run() { for(int i=0;i<10;i++) { System.out.println(name + "运行,i" + i); } } } public class ThreadDemo { public static void main(String[] args) { MyThread my1 = new MyThread("线程A "); MyThread my2 = new MyThread("线程B "); Thread t1 = new Thread(my1); Thread t2 = new Thread(my2) t1.start(); t2.start(); } }
——死锁
同步中嵌套同步
5、总结
(1)线程是指程序的运行流程,多线程机制可以同时运行多个程序块,使程序运行效率更高。
(2)run()方法是定义在Thread类中的一种方法,因此把线程的程序代码编写在run()方法内所做的就是覆写的操作。
(3)Runnable接口中声明了抽象的run()的方法,因此必须在实现Runnable接口的类中明确定义run()方法。
(4)在每一个线程创建和消亡之前,均会处于创建、就绪、运行、阻塞、终止状态之一
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
相关文章推荐
- 【黑马程序员】多线程,设计模式——Java复习笔记
- 黑马程序员之JAVA学习笔记:多线程学习大总结
- 黑马程序员一一Java的多线程笔记
- 【黑马程序员】方法、数组、面向对象、封装、继承——Java复习笔记
- 黑马程序员------java学习笔记之多线程
- Java复习笔记+经验总结-06 多线程 泛型 反射
- 黑马程序员_JAVA笔记11——多线程
- 【黑马程序员】语法、四大语句——Java复习笔记
- 黑马程序员 JAVA学习笔记 ——— 多线程
- 黑马程序员 java学习笔记——多线程2
- 黑马程序员---java多线程 学习笔记
- 黑马程序员---Java基础学习笔记(多线程-后篇)
- 黑马程序员_java基础笔记(04)...多线程
- 黑马程序员_java基础笔记(04)...多线程
- 【黑马程序员】异常,File类,IO流——Java复习笔记
- 黑马程序员——Java中 多线程笔记
- 黑马程序员_java基础笔记(04)...多线程
- 黑马程序员_java多线程笔记Part I
- 黑马程序员-Java学习笔记之多线程
- 黑马程序员_java多线程学习笔记