黑马程序员 java之多线程总结
2013-06-01 13:30
218 查看
---------------------------------------------------------------- android培训、java培训、期待与您交流! ----------------------------------------------------------------------------------------
线程是进程的分割,是计算机进行调度的基本单位,一个进程可以包含一个或多个线程,有了线程程序的运行效率变快了。在java中线程的定义,可以通过两种方法,一种是通过继承Thread类,另一种是通过实现Runnalbe接口。示例如下:
class Test3
{
public static void main(String[] args)
{
ThreadDemo t1=new ThreadDemo();
t1.start();
ThreadDemo2 td=new ThreadDemo2();
Thread t2=new Thread(td);
t2.start();
}
}
class ThreadDemo extends Thread//继承Thread类以实现进程的创建
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"方法一");
}
}
}
class ThreadDemo2 implements Runnable//实现Runnable接口以实现进程的创建
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"方法二");
}
}
}
进程的开启只能用start()方法, 虽然类中的run()方法可以调用,但是并不会开启一个进程。
进程间的同步:
一种是通过同步代码块,另一种是通过同步函数
---------------------------------------------------------------- android培训、java培训、期待与您交流! ----------------------------------------------------------------------------------------
线程是进程的分割,是计算机进行调度的基本单位,一个进程可以包含一个或多个线程,有了线程程序的运行效率变快了。在java中线程的定义,可以通过两种方法,一种是通过继承Thread类,另一种是通过实现Runnalbe接口。示例如下:
class Test3
{
public static void main(String[] args)
{
ThreadDemo t1=new ThreadDemo();
t1.start();
ThreadDemo2 td=new ThreadDemo2();
Thread t2=new Thread(td);
t2.start();
}
}
class ThreadDemo extends Thread//继承Thread类以实现进程的创建
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"方法一");
}
}
}
class ThreadDemo2 implements Runnable//实现Runnable接口以实现进程的创建
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"方法二");
}
}
}
进程的开启只能用start()方法, 虽然类中的run()方法可以调用,但是并不会开启一个进程。
进程间的同步:
一种是通过同步代码块,另一种是通过同步函数
class Test3 { public static void main(String[] args) { ThreadDemo1 td1=new ThreadDemo1(); Thread t1=new Thread(td1); Thread t2=new Thread(td1); Thread t3=new Thread(td1); t1.start(); t2.start(); t3.start(); } } class ThreadDemo1 implements Runnable { public void run() { int x=1000; while(x>0) { synchronized(Test3.class) { System.out.println(Thread.currentThread().getName()+"-----"+x--); } } }
public void synchronized run()
{ int x=1000;
while(x>0)
{
System.out.println(Thread.currentThread().getName()+"-----"+x--);
}
} }
---------------------------------------------------------------- android培训、java培训、期待与您交流! ----------------------------------------------------------------------------------------
相关文章推荐
- 黑马程序员_java多线程总结
- 黑马程序员-Java基础之多线程总结
- 黑马程序员-Java基础-多线程之单例模式总结
- 黑马程序员_Java基础:多线程总结
- 黑马程序员-----java多线程总结*
- 黑马程序员java基础篇----多线程总结(下)
- 黑马程序员_java多线程的一些总结(一)
- 黑马程序员_java多线程学习总结
- 【黑马程序员】java多线程学习总结
- 黑马程序员:Java基础总结----多线程安全性&同步
- 黑马程序员学习笔记 Java中多线程与并发的总结
- 黑马程序员_java多线程的一些总结(二)
- 黑马程序员 Java学习总结之多线程中start方法和run方法的区别(这个一定要搞清楚)
- 黑马程序员—java之多线程总结
- 黑马程序员---------java多线程总结
- 黑马程序员——java复习总结——多线程
- 黑马程序员 Java多线程总结
- 黑马程序员_java的多线程(对第十一课创建多线程及多线程安全问题总结)
- 黑马程序员--多线程总结2--java
- 【黑马程序员】java多线程创建的俩中方法总结