您的位置:首页 > 职场人生

黑马程序员-多线程的初步认识

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息