黑马程序员技术交流社区
标题:
多线程的一些总结
[打印本页]
作者:
yangkai69
时间:
2015-8-21 16:33
标题:
多线程的一些总结
系统运行程序,叫进程,程序运行数据时,叫线程,一个电脑可以同时运行多个程序,同样一个程序可以同时运行多个线程,一个程序同时运行多个线程的技术,叫做多线程技术。
多线程有两种实现方式,第一种是继承Thread类,另一种是实现runnable接口。
下面我以一个例子来说明:
/**
* 功能:多线程的一些总结,以下列题目作为说明
* 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,
* 要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
*
*/
package myblog;
public class DuoXianCheng {
public static int k=1;
public static void addk()
{
if(k==3)
{
k=1;
}else{
k++;
}
}
public static void main(String[] args) {
printA a=new printA();
printB b=new printB();
printC c=new printC();
Thread t1=new Thread(b);
Thread t2=new Thread(c);
a.start();
t1.start();
t2.start();
}
}
class printA extends Thread
{
public void run() {
for(int i=0;i<10;i++)
{
if(DuoXianCheng.k==1)
{
System.out.println(" A ");
DuoXianCheng.addk();
}else{
try {
sleep(10);
i--;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
class printB implements Runnable
{
public void run() {
for(int i=0;i<10;i++)
{
if(DuoXianCheng.k==2)
{
System.out.println(" B ");
DuoXianCheng.addk();
}else{
try {
Thread.sleep(10);
i--;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
class printC implements Runnable
{
public void run() {
for(int i=0;i<10;i++)
{
if(DuoXianCheng.k==3)
{
System.out.println(" C ");
DuoXianCheng.addk();
}else{
try {
Thread.sleep(10);
i--;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2