java多线程执行问题

class Demo extends Thread{
    public Demo(String name){
        super(name);
    }
      
    public void run(){
        for(int i=0; i<6; ++i){
            System.out.println("i = " + i + "......Thread=" + Thread.currentThread().getName());
            try{
                Thread.sleep(100);
            }catch(InterruptedException e){
                System.out.println("进程被打断!");
            }
        }
    }
}
 
 
public class Test{
   public static void main(String[] args) throws InterruptedException{
          
        Demo d1 = new Demo("hjz");
        Demo d2 = new Demo("chb");
        d1.start();
        //另外当某一个线程因为异常而终止,其他的线程照样执行,不会受到任何影响!
        System.out.println(5/0);//throw new ArithmeticException()
        for(int i=0; i<6; ++i){
            System.out.println("i = " + i + "......Thread=" + Thread.currentThread().getName());
            Thread.sleep(200);
        }
         
         
        d2.start();//如果开启新线程之前,就因为异常而中止了线程,那么新线程将无法开启!
   }
}
  
/* 
 class Demo extends Thread{
    public Demo(String name){
        super(name);
    }
    //public Thread(String name) {
    //    init(null, null, name, 0);
    //} 也就是在创建线程对象的时候,通过构造函数该线程就有了名字了!
    public void run(){
        for(int i=0; i<6; ++i){
            System.out.println("i = " + i + "......Thread=" + getName());
            try{
                Thread.sleep(100);
            }catch(InterruptedException e){
                System.out.println("进程被打断!");
            }
        }
    }
}
 
public class Test{
   public static void main(String[] args) throws InterruptedException{
        Demo d1 = new Demo("hjz");
        Demo d2 = new Demo("chb");
         
        d1.run();
        d2.run();  
   }
}
 */
时间: 2024-11-01 08:02:02

java多线程执行问题的相关文章

java多线程执行出现异常怎么办?

问题描述 java多线程执行出现异常怎么办? 使用spring+ibatis框架开发: 现在网站的下单流程分为三步,1.发送邮件和短信:2.删除购物车表:3.插入订单表: 现在用线程池来实现多线程的并发操作.但是如果其中一个线程出现异常,想的是应该全 部都回滚.那么如果来保证这三个线程之间的原子性. 解决方案 首先,必须使用互斥锁将你的操作在锁保护范围内:其次了,就是使用try-catch-finally进行异常捕获,一旦捕获异常就执行回滚操作 .最后,只要保证同一时刻只有一个线程执行相应的操作

简单讲解java多线程执行过程测试分析

class 类名 extends Thread{ 方法1; 方法2: - public void run(){ // other code- } 属性1: 属性2: - } 先看一个简单的例子: /**  * @author Rollen-Holt 继承Thread类,直接调用run方法  * */ class hello extends Thread {  public hello() {  }  public hello(String name) {   this.name = name;

Java多线程--让主线程等待所有子线程执行完毕在执行_java

朋友让我帮忙写个程序从文本文档中导入数据到oracle数据库中,技术上没有什么难度,文档的格式都是固定的只要对应数据库中的字段解析就行了,关键在于性能. 数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis()在最后一个子进程结束后记录当前时间,两次一减得到的时间差即为总共的用时,代码如下  long tStart = System.currentTim

关于java多线程中的join方法

问题描述 关于java多线程中的join方法 1.主线程可能在子线程结束之前 结束吗?如果可能的话 举一个例子 2.如何理解join方法, 结合实际应用. 非常感谢非常感谢!!! 解决方案 关于join,参考:http://www.blogjava.net/jnbzwm/articles/330549.html 解决方案二: 主线程可能在子线程结束之前 结束吗 一般来说不可以,但是也不一定,如果子线程在执行finally中的代码,应该会等它执行完了才退出. 晕,join方法和什么"让主线程等子线

Java多线程编程详解

编程|多线程|详解 一:理解多线程多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立. 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单.多个线程的执行是并发的,也就是在逻辑上"同时",而不管是否是物理上的"同时".如果系统只有一个CPU,那么真正的"同时"是不可

Java多线程程序设计

程序|多线程|设计 一:理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立. 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单. 多个线程的执行是并发的,也就是在逻辑上"同时",而不管是否是物理上的"同时".如果系统只有一个CPU,那么真正的"同时"是

深入浅出Java多线程程序设计

程序|多线程|设计 一:理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立. 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单. 多个线程的执行是并发的,也就是在逻辑上"同时",而不管是否是物理上的"同时".如果系统只有一个CPU,那么真正的"同时"是

Java多线程:“基础篇”01之基本概念

多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容 ,是对"JDK中新增JUC包"之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的 wait(), notify()等接口:Thread类中的接口:synchronized关键字. 注:JUC包是指,Java.util.concurrent包,它是由Java大师Doug Lea完成并在JDK1.5版本添加到 Java中的. 在进入后面章节的学习之前,先对了解一些多线程的相关概念

Java多线程同步问题的探究(四)

四.协作,互斥下的协作--Java多线程协作(wait.notify.notifyAll) Java监视器支持两种线程:互斥和协作. 前面我们介绍了采用对象锁和重入锁来实现的互斥.这一篇中,我们来看一看线程的协作. 举个例子:有一家汉堡店举办吃汉堡比赛,决赛时有3个顾客来吃,3个厨师来做,一个服务员负责协调汉堡的数量.为了避免浪费,制 作好的汉堡被放进一个能装有10个汉堡的长条状容器中,按照先进先出的原则取汉堡.如果容器被装满,则厨师停止做汉堡,如果顾客发 现容器内的汉堡吃完了,就可以拍响容器上