一,问题描述

假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有机会执行吗?

二,示例代码(代码来源于互联网)

 public class Service {
Object object1 = new Object(); public void methodA() {
synchronized (object1) {
System.out.println("methodA begin");
boolean isContinueRun = true;
//在这里执行一个死循环
while (isContinueRun) { }
System.out.println("methodA end");
}
} Object object2 = new Object(); public void methodB() {
synchronized (object2) {
System.out.println("methodB begin");
System.out.println("methodB end");
}
}
}

两个线程类的实现如下:

 import service.Service;

 public class ThreadA extends Thread {

     private Service service;

     public ThreadA(Service service) {
super();
this.service = service;
} @Override
public void run() {
service.methodA();
} }

线程A执行methodA(),methodA()中有一个死循环

 import service.Service;

 public class ThreadB extends Thread {

     private Service service;

     public ThreadB(Service service) {
super();
this.service = service;
} @Override
public void run() {
service.methodB();
} }

线程B执行methodB(),当线程A进入methodA()中的while死循环时,线程B的能不能执行完成?

测试类

 import service.Service;
import extthread.ThreadA;
import extthread.ThreadB; public class Run { public static void main(String[] args) {
Service service = new Service(); ThreadA athread = new ThreadA(service);
athread.start(); ThreadB bthread = new ThreadB(service);
bthread.start();
} }

执行结果:

aaarticlea/png;base64,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" alt="" />

由于线程A和线程B获得的对象锁不是同一把锁,从结果中可以看出,线程B是可以执行完成的。而线程A由于进入了while死循环,故线程A一直执行运行下去了(整个程序未结束),但线程B会结束。

也就是说,尽管线程A一直在while中执行,需要占用CPU。但是,线程的调度是由JVM或者说是操作系统来负责的,并不是说线程A一直在while循环,然后线程B就占用不到CPU了。对于线程A而言,它就相当于一个“计算密集型”作业了。如果我们的while循环是不断地测试某个条件是否成立,那么这种方式就很浪费CPU,可参考一个具体的实例:JAVA多线程之线程间的通信方式 中的“线程间的通信方式”第二点while轮询。

如果把Service.java修改成如下:

 public class Service {
// Object object1 = new Object(); public void methodA() {
synchronized (this) {
System.out.println("methodA begin");
boolean isContinueRun = true;
//在这里执行一个死循环
while (isContinueRun) { }
System.out.println("methodA end");
}
} // Object object2 = new Object(); public void methodB() {
synchronized (this) {
System.out.println("methodB begin");
System.out.println("methodB end");
}
}
}

若线程A先获得对象锁时,由于while循环,线程A一直在while空循环中。而线程B也因为无法获得锁而执行不了methodB()。

可以看出,如果在一个线程在synchronized方法中无法退出,无法将锁释放,另一个线程就只能无限等待了。

JAVA多线程之当一个线程在执行死循环时会影响另外一个线程吗?的更多相关文章

  1. Qt中暂停线程的执行(主线程和工作线程共用一把锁,一旦主线程将它锁上,工作线程就无法运行了,这也是一个办法)

    在线程中定义一个信号量: QMutex pause; 把run()函数中循环执行的部分用信号量pause锁住:   void run()   {   while(1)   {   pause.lock ...

  2. Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? 线程的sleep()方法和yield()方法有什么区别?

    Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间 ...

  3. java 多线程,T1 T2 T3 顺序执行

    一.程序设计 1.抽象公共类PublicThread,具有先前线程属性previousThread.父类为Thread 2.在PublicThread的run()方法中判断previousThread ...

  4. Java多线程编程-线程之间的通信

    转载自:这里 学习了基础的线程知识 看到了 线程之间的通信 线程之间有哪些通信方式呢? 1.同步 这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信. public ...

  5. JAVA多线程之线程间的通信方式

    (转发) 收藏 记 周日,北京的天阳光明媚,9月,北京的秋格外肃穆透彻,望望窗外的湛蓝的天,心似透过栏杆,沐浴在这透亮清澈的蓝天里,那朵朵白云如同一朵棉絮,心意畅想....思绪外扬, 鱼和熊掌不可兼得 ...

  6. java多线程与线程并发四:线程范围内的共享数据

    当多个线程操作同一个共有数据时,一个线程对共有数据的改变会影响到另一个线程.比如下面这个例子:两个线程调用同一个对象的的方法,一个线程的执行结果会影响另一个线程. package com.sky.th ...

  7. java中怎么终止一个线程的执行----个人学习心得

    参考了一下两个网站的介绍: ①:http://blog.csdn.net/liuhanhan512/article/details/7077601 ②:http://www.blogjava.net/ ...

  8. java 多线程 一个博客

    http://blog.csdn.net/a352193394/article/category/2563875 Java多线程之~~~线程安全容器的非阻塞容器 在并发编程中,会经常遇到使用容器.但是 ...

  9. Java多线程(二) —— 线程安全、线程同步、线程间通信(含面试题集)

    一.线程安全 多个线程在执行同一段代码的时候,每次的执行结果和单线程执行的结果都是一样的,不存在执行结果的二义性,就可以称作是线程安全的. 讲到线程安全问题,其实是指多线程环境下对共享资源的访问可能会 ...

随机推荐

  1. JSON for-in 遍历

    (代码均以js代码示例) 1.可以使用 for-in 来循环对象的属性,使用中括号([])来访问属性的值: 这中方法便于一些在不确定有属性的情况下使用. var myObj = { "nam ...

  2. [转帖]Linux 的静态库与动态库

    Linux下的静态库与动态库 2017年02月18日 09:17:13 LLZK_ 阅读数:10257 标签: linux动态库静态库区别使用 更多 个人分类: Linux学习笔记 所属专栏: Lin ...

  3. 【Java基础】switch语句实现根据数字输出对应星期

    代码: import java.util.Scanner; /* * switch语句格式: * switch(表达式) { * case 值1: * 语句体1; * break; * case 值2 ...

  4. vue中的适配:px2rem

    这应该是vue项目在适配移动端时候,最简单的方法之一下面是基本步骤(使用cnpm)1.下载并引入lib-flexible cnpm install --save lib-flexible 在main. ...

  5. java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决

    在pom 文件中添加 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artif ...

  6. linux 地址解析协议 arp

    随便转载,保留出处:http://www.cnblogs.com/aaron-agu/ arp –na #查看 arp –s 123.253.68.209 00:19:56:6F:87:D4 #添加

  7. css 浮动问题 display显示 和 光标设置cursor

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>浮 ...

  8. tensorflow点滴笔记

    1.模型保存 模型保存需要使用函数 tf.train.Saver(), a)创建saver时,可以指定需要存储的tensor,如果没有指定,则全部保存. b) 创建saver时,可以指定保存的模型个数 ...

  9. Spring Boot 构建电商基础秒杀项目 (十二) 总结 (完结)

    SpringBoot构建电商基础秒杀项目 学习笔记 系统架构 存在问题 如何发现容量问题 如何使得系统水平扩展 查询效率低下 活动开始前页面被疯狂刷新 库存行锁问题 下单操作步骤多,缓慢 浪涌流量如何 ...

  10. 学习 Spring (五) Aware 接口

    Spring入门篇 学习笔记 Spring 中提供了一些以 Aware 结尾的接口,实现了 Aware 接口的 bean 在被初始化之后可以获取相应资源 通过 Aware 接口,可以对 Spring ...