黑马程序员-多线程的初步认识
2012-06-24 23:52
274 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
多线程在实际生活中应用很广泛
定义类,继承Thread,覆盖run方法,//目的:将自定义代码存储在run方法中,让线程运行。
调用线程的start方法,启动线程,调用run方法。
发现每次的运行结果都不一样,因为多个线程都获取cpu的执行权,cpu执行到谁,谁就运行。
明确一点,在某一时刻,只能有一个程序在运行,(多核除外)cpu在做快速的切换,以达到看上去是同时运行的效果。
我们可以形象的把多线程的运行形容为在互相抢夺cpu的执行权
多线程的特性:随机性。谁抢到谁执行。
为什么要覆盖run方法呢?
Thread类用于描述线程,该类就定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法,也就是说,Thread类中的run方法,用于存储线程要运行的代码。
同步代码块:
synchronized(对象)
{
同步代码块
}
同步的前提:
1,必须要有两个或者两个以上的线程
2,必须是多个线程使用同一个锁
好处:解决了多线程的安全问题
弊端:多个线程需要判断锁,较为消耗资源
下面是开启线程的第一种方式:继承Thread类
/*
线程练习:创建两个线程,和主线程交替运行
*/
class Test extends Thread
{
private String name;
Test(String name)
{
this.name=name;
}
public void run()
{
for(int x=0;x<100;x++)
{
System.out.println(name+" run---"+x);
}
}
}
class ThreadTest1
{
public static void main(String[] args)
{
Test t1= new Test("one");
Test t2 = new Test("two");
t1.start();
t2.start();
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
多线程在实际生活中应用很广泛
定义类,继承Thread,覆盖run方法,//目的:将自定义代码存储在run方法中,让线程运行。
调用线程的start方法,启动线程,调用run方法。
发现每次的运行结果都不一样,因为多个线程都获取cpu的执行权,cpu执行到谁,谁就运行。
明确一点,在某一时刻,只能有一个程序在运行,(多核除外)cpu在做快速的切换,以达到看上去是同时运行的效果。
我们可以形象的把多线程的运行形容为在互相抢夺cpu的执行权
多线程的特性:随机性。谁抢到谁执行。
为什么要覆盖run方法呢?
Thread类用于描述线程,该类就定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法,也就是说,Thread类中的run方法,用于存储线程要运行的代码。
同步代码块:
synchronized(对象)
{
同步代码块
}
同步的前提:
1,必须要有两个或者两个以上的线程
2,必须是多个线程使用同一个锁
好处:解决了多线程的安全问题
弊端:多个线程需要判断锁,较为消耗资源
下面是开启线程的第一种方式:继承Thread类
/*
线程练习:创建两个线程,和主线程交替运行
*/
class Test extends Thread
{
private String name;
Test(String name)
{
this.name=name;
}
public void run()
{
for(int x=0;x<100;x++)
{
System.out.println(name+" run---"+x);
}
}
}
class ThreadTest1
{
public static void main(String[] args)
{
Test t1= new Test("one");
Test t2 = new Test("two");
t1.start();
t2.start();
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
相关文章推荐
- 黑马程序员-学习日记(多线程的初步认识)
- 黑马程序员-1-MAC OS X 、C语言初步认识、Xcode常用快捷键
- 黑马程序员-OC的类和对象的初步认识
- 黑马程序员——初步认识Objective-C
- android多线程之AsyncTask的初步认识(一)
- 对于多线程的初步认识
- 第二周1天13章多线程的初步认识
- 黑马程序员---java多线程初步
- 黑马程序员--基本数据类型的自动装箱与拆箱(享元模式的初步认识)
- 黑马程序员-16-IOS应用程序初步认识
- 黑马程序员-OC内存管理的初步认识
- 黑马程序员_精简三层架构DAL(初步认识DAL,Model,DBNull.Value的作用)
- android多线程之AsyncTask的初步认识(二)
- 黑马程序员-5-Objective-C学习笔记(OC的初步认识)
- 黑马程序员_考核技术日志1_IO篇之IO流的初步认识及对文件的简单的读取
- android多线程之AsyncTask的初步认识(三)
- 黑马程序员——OC的初步认识,类和对象
- 黑马程序员_多线程初步学习
- 黑马程序员-学习日记(多线程安全问题和死锁认识)
- 黑马程序员——C语言中的指针变量初步认识