一,问题描述

假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如: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. 在linux和本地系统之间进行数据传输的简单方法--lrzsz

    lrzsz是一款在linux里可代替ftp上传和下载的程序. >>提君博客原创  http://www.cnblogs.com/tijun/  << 提君博客原创 安装和使用非 ...

  2. vue 中的slot属性(插槽)的使用

    总结如下: VUE中关于插槽的文档说明很短,语言又写的很凝练,再加上其和方法,数据,计算机等常用选项在使用频率,使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经 ...

  3. drf实现图片验证码功能

    一.背景 在之前实现过django的图片验证码,有自己实现过的,也有基于django-simple-captcha的,都是基于form表单验证,若自己实现,可以获取相应的标签name便可以获取判断,若 ...

  4. C# 中那些常用的工具类(Utility Class)(二)

    今天按照这一年来经常用到的那些静态的工具类再来做一次总结,这些小的工具来可以作为自己学习的很好的例子,通过总结这些东西,能够很大程度上梳理自己的知识体系,当然这个是经常用到的,接下来就一个个去分析这些 ...

  5. query中对应的OnSetText和onGetText事件

    今天在看代码的时候遇到一个问题,query中的某个字段和在表中显示的不是一个值,我觉得很奇怪,于是找了很久,才知道为什么,原来是query中的OnSetText和onGetText事件在作怪,经过一番 ...

  6. mybatis:数据持久层框架

    mybatis是一个持久层的框架,是Apache下的顶级项目. mybatis托管到goolecode下,再后来托管到GitHub下:https://github.com/mybatis/mybati ...

  7. Spring Boot 构建电商基础秒杀项目 (六) 用户登陆

    SpringBoot构建电商基础秒杀项目 学习笔记 userDOMapper.xml 添加 <select id="selectByTelphone" resultMap=& ...

  8. Vue数组更新及过滤排序

    前面的话 Vue为了增加列表渲染的功能,增加了一组观察数组的方法,而且可以显示一个数组的过滤或排序的副本.本文将详细介绍Vue数组更新及过滤排序 变异方法 Vue 包含一组观察数组的变异方法,它们将会 ...

  9. PHP——emjoin表情存入数据库

    前言 还有一种解决的方法是更改数据库,这里就不写了,这里直接对emoji进行转码 代码 mb_strlen() | strlen() | rawurlencode() | rawurldecode() ...

  10. P2084 进制转换

    原题链接 https://www.luogu.org/problemnew/show/P2084 这个题的思路就是先将输入的数字存到字符数组里,然后求出这一串数字中的非0元素的个数total,并记录最 ...