黑马程序员-JAVA多线程开发
2012-02-18 18:52
190 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
线程是轻量级的进程
每个程序都至少会有一个进程
进程是一个正在执行中的程序
每一个进程执行都有一个执行顺序。该顺序是一个执行路经,或者叫做控制单位
线程:就是进程中的一个
死锁就是两个进程过河,谁也不让谁就一直僵在那里独立的控制单元。线程在控制着进程的执行
一个线程至少有一个线程
JAVA VM 启动时候会有一个进程java.exe
该进程中至少有一个线程负责JAVA程序的执行。
而且这个线程运行的代码存在于main方法中
该线程称之为主线程。
扩展:其实更细节说明,JVM,JVM启动的不止一个线程,还有负责垃圾回收机制的线程
实现有两个方法一个是继承Thread然后重写run方法
static Thread currentThread():获取当前线程对象的。
GetName():获取线程名称
步骤:
1,定义一个继承Thread的类
2。重写run方法
Run用于存放需要执行的代码
3.调用start方法
start是启动线程,然后调用Run方法来运行这个进程
CPU并不是真的是实现多个程序共同运行,而是CPU处理的数据非常快再加上快速的切换,使之看起来就好像是多个线程在同时运行
Thread类用于描述线程。
该类就定义一个功能,用于存储线程要运行的代码,该存储方法就是Run方法
Run方法用于存放线程要运行的代码
1 class Demo extends Thread
2 {
3 public void run()
4 {
5 for(int x=0;x<600;x++)
6 System.out.println("demo run"+x);
7 }
8 }
9 class ThreadDemo
10 {
11 public static void main(String[] args)
12 {
13 Demo d=new Demo();
14 d.start();
15 for(int i=0;i<600;i++)
16 System.out.println("hello world!"+i);
17 }
18 }
//下面的程序是创建两个进程执行,看同步时的效果
1
1 class Demo extends Thread
2 {
3 public void run()
4 {
5 for(int x=0;x<600;x++)
6 System.out.println("demo run"+x);
7 }
8 }
9 class ThreadDemo
10 {
11 public static void main(String[] args)
12 {
13 Demo d=new Demo();
14 d.start();
15 for(int i=0;i<600;i++)
16 System.out.println("hello world!"+i);
17 }
18 }
1、一个线程通常需要经历四个状态。
1。新建
当你声明一个对象并且创建时就处于新建状态
2。运行
线程具有了运行的条件,并且当时刻轮到你这里时并享用CPU的资源
3。中断
因为某些条件会致使程序中断,跳到这个状态
4。死亡
当线程不具有继承运行的能力。
创建线程的第二种方式:实现Runable接口
步骤
1,定义类实现Runnable接口中的run方法。
2.覆盖Runnable接口中的run方法。
3.通过Thread类建立线程对象
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
5。调用THread类的start()方法开启线程并调用Runnable接口了类的run方法
实例代码如下:
class Ticket implements Runnable
{
private static int tick=100;
public void run()
{
while(true){
if(tick>0)
{
System.out.println(Thread.currentThread().getName()+"sale: "+tick--);
}
else{
break;
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
//下面是创建四个进程并且启动它
Ticket t=new Ticket(t);
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread();
t1.start();
t2.start();
t3.start();
t4.start();
}
}
synchronized(对象)
{
需要同步的代码
}
函数锁是用this代表
静态的同步方法,使用的锁是所在类转换后的字节码表示,类名.class
---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
线程是轻量级的进程
每个程序都至少会有一个进程
进程是一个正在执行中的程序
每一个进程执行都有一个执行顺序。该顺序是一个执行路经,或者叫做控制单位
线程:就是进程中的一个
死锁就是两个进程过河,谁也不让谁就一直僵在那里独立的控制单元。线程在控制着进程的执行
一个线程至少有一个线程
JAVA VM 启动时候会有一个进程java.exe
该进程中至少有一个线程负责JAVA程序的执行。
而且这个线程运行的代码存在于main方法中
该线程称之为主线程。
扩展:其实更细节说明,JVM,JVM启动的不止一个线程,还有负责垃圾回收机制的线程
实现有两个方法一个是继承Thread然后重写run方法
static Thread currentThread():获取当前线程对象的。
GetName():获取线程名称
步骤:
1,定义一个继承Thread的类
2。重写run方法
Run用于存放需要执行的代码
3.调用start方法
start是启动线程,然后调用Run方法来运行这个进程
CPU并不是真的是实现多个程序共同运行,而是CPU处理的数据非常快再加上快速的切换,使之看起来就好像是多个线程在同时运行
Thread类用于描述线程。
该类就定义一个功能,用于存储线程要运行的代码,该存储方法就是Run方法
Run方法用于存放线程要运行的代码
1 class Demo extends Thread
2 {
3 public void run()
4 {
5 for(int x=0;x<600;x++)
6 System.out.println("demo run"+x);
7 }
8 }
9 class ThreadDemo
10 {
11 public static void main(String[] args)
12 {
13 Demo d=new Demo();
14 d.start();
15 for(int i=0;i<600;i++)
16 System.out.println("hello world!"+i);
17 }
18 }
//下面的程序是创建两个进程执行,看同步时的效果
1
1 class Demo extends Thread
2 {
3 public void run()
4 {
5 for(int x=0;x<600;x++)
6 System.out.println("demo run"+x);
7 }
8 }
9 class ThreadDemo
10 {
11 public static void main(String[] args)
12 {
13 Demo d=new Demo();
14 d.start();
15 for(int i=0;i<600;i++)
16 System.out.println("hello world!"+i);
17 }
18 }
1、一个线程通常需要经历四个状态。
1。新建
当你声明一个对象并且创建时就处于新建状态
2。运行
线程具有了运行的条件,并且当时刻轮到你这里时并享用CPU的资源
3。中断
因为某些条件会致使程序中断,跳到这个状态
4。死亡
当线程不具有继承运行的能力。
创建线程的第二种方式:实现Runable接口
步骤
1,定义类实现Runnable接口中的run方法。
2.覆盖Runnable接口中的run方法。
3.通过Thread类建立线程对象
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
5。调用THread类的start()方法开启线程并调用Runnable接口了类的run方法
实例代码如下:
class Ticket implements Runnable
{
private static int tick=100;
public void run()
{
while(true){
if(tick>0)
{
System.out.println(Thread.currentThread().getName()+"sale: "+tick--);
}
else{
break;
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
//下面是创建四个进程并且启动它
Ticket t=new Ticket(t);
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread();
t1.start();
t2.start();
t3.start();
t4.start();
}
}
synchronized(对象)
{
需要同步的代码
}
函数锁是用this代表
静态的同步方法,使用的锁是所在类转换后的字节码表示,类名.class
---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
相关文章推荐
- JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
- 黑马程序员——java基础_多线程
- 黑马程序员-----Java基础-----多线程
- 黑马程序员--Java学习日记之eclipse开发工具的熟练使用,磨刀不误砍柴工!
- 黑马程序员——JAVA多线程编程及syncronized关键字使用
- 黑马程序员——Java开发前奏
- java多线程开发之CyclicBarrier,CountDownLatch
- 黑马程序员-Java编程知识总结多线程
- Java 5.0 多线程编程实践-Java基础-Java-编程开发
- 黑马程序员之JAVA学习笔记:多线程学习大总结
- 黑马程序员——Java基础--- 多线程
- 黑马程序员——java基础(多线程)
- 黑马程序员_JAVA多线程(一)
- Java基础---多线程 (黑马程序员)
- 黑马程序员-Java中的多线程
- 黑马程序员---Java基础(多线程)
- 黑马程序员—Java基础学习笔记之多线程
- 黑马程序员--01.Java开发前奏--02.开发环境的搭建
- 黑马程序员---Java基础-多线程的实现
- 黑马程序员 – 学习Java5中的多线程(2) – 2012.12.30