Java多线程实例

网友投稿 199 2023-07-26


Java多线程实例

在上篇文章给大家介绍了java多线程的实现方式,通过本文给大家介绍javaYZAJkGovN多线程实例,对java多线程感兴趣的朋友一起学习吧

首先给大家说下多线程的优缺点

多线程的优点:

1)资源利用率更好

2)程序设计在某些情况下更简单

3)程序响应更快

多线程的代价:

1)设计更复杂

虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往往非常复杂。不正确的线程同步产生的错误非常难以被发现,并且重现以修复。

2)上下文切换的开销

当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行。这种切换称为“上下文切换”(“context switch”)。CPU会在一个上下文中执行一个线程,然后切换到另外一个上下文中执行另外一个线程。上下文切换并不廉价。如果没有必要,应该减少上下文切换的发生。

定义和启动线程主要有两个关键技术:

第一:线程类必须实现java.lang.Runnable接口或者继承java.lang.Thread类,并且都要实现run方法,其中run方法没有输入,没有输出,也无异常。

第二:调用Thread类的start方法启动线程,当获得cpu资源后,start方法自动调用线程run方法开始运行。

package test;

import java.util.Vector;

import java.util.Date;

/**

* 线程测试实例

* @author 静止的流水

*

*/

public class Threadnew

{

/**

*

* @author 静止的流水

*

*/

class ThreadA extends Thread

{

private Date runtime;

public void run()

{

YZAJkGovN System.out.println("ThreadA begin.");

this.runtime = new Date();

System.out.println("ThreadA end.");

}

}

/**

*

* @author 静止的流水

*

*/

class ThreadB implements Runnable

{

private Date runtime;

public void run()

{

System.out.println("ThreadB begin.");

this.runtime = new Date();

System.out.println("ThreadB end.");

}

}

/**

*

*

*/

public void starta()

{

Thread threada = new ThreadA();

threada.start();

}

/**

*

*

*/

public void startb()

{

Runnable threadb = new ThreadB();

Thread thhttp://read = new Thread(threadb);

thread.start();

}

/**

*

* @param args

*/

public static void main(String[] args)

{

Threadnew test = new Threadnew();

test.starta();

test.startb();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入解析Java中的Classloader的运行机制
下一篇:Java设计模式之工厂方法模式实例简析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~