Java多线程实例
在上篇文章给大家介绍了java多线程的实现方式,通过本文给大家介绍java多线程实例,对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()
{
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 thread = new Thread(threadb);
thread.start();
}
/**
*
* @param args
*/
public static void main(String[] args)
{
Threadnew test = new Threadnew();
test.starta();
test.startb();
}
}
上一篇:解决IDEA2020.1版本不兼容Lombok的问题
栏 目:JAVA代码
本文标题:Java多线程实例
本文地址:http://www.codeinn.net/misctech/114036.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




