实现Runnable接口创建线程,并验证同步函数this锁--存疑
来源:互联网 发布:spss如何将数据分组 编辑:程序博客网 时间:2024/06/16 01:23
实现Runnable接口创建线程,并验证同步函数this锁–存疑
存疑:调用发现,线程t1,t2都没有消亡,执行结果只有t1线程。
package javaTest.xiancheng.Test;/* * 判断同步函数的锁是this锁 */public class ThisLock implements Runnable{ private int num=100; public boolean flag=true; Object obj=new Object(); public void run(){ //当flag为true时执行同步代码块 if(flag){ //将同步代码块的锁设置为this锁 synchronized (this) {//由obj换成this与同步函数对比 while(num>0){ try { //手动添加sleep模拟异常 Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+num--); } } } //当flag为false时执行同步函数 else{ //调用同步过函数 synfunction(); } } //同步函数 public synchronized void synfunction(){//同步函数的锁是this锁 while(num>0){ try { //手动添加sleep模拟异常 Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+num--); } }}--------------------------------------------------package javaTest.xiancheng.Test;public class Test_ThisLock {/* * 判断同步函数的锁是this锁的测试类 */ public static void main(String[] args) { ThisLock th=new ThisLock(); Thread t1=new Thread(th,"线程1.."); Thread t2=new Thread(th,"线程2.."); t1.start(); System.out.println("线1 "+t1.isAlive()); try { Thread.sleep(0); } catch (InterruptedException e) { e.printStackTrace(); } th.flag=false; t2.start(); System.out.println("线2 "+t2.isAlive()); }}
0 0
- 实现Runnable接口创建线程,并验证同步函数this锁--存疑
- Java 创建线程 实现Runnable接口
- 多线程(创建线程-实现Runnable接口)
- 通过实现Runnable接口来创建线程
- 通过实现Runnable接口创建线程
- Java核心内库-线程-通过实现Runnable接口的方式创建并启动线程
- 通过Runnable接口创建线程
- 创建线程的方法二:实现 Runnable 接口
- JAVA中通过实现Runnable接口来创建线程类
- 多线程(一)——通过实现Runnable接口创建线程
- java创建线程的第二种方式:实现Runnable接口
- 线程的第二种创建方式 实现接口Runnable
- java多线程-售票例子-创建线程-实现Runnable接口
- JAVA学习笔记(三十八)- 创建实现Runnable接口的线程
- 创建线程的第二种方法:实现Runnable接口
- Java通过实现Runnable接口来创建线程
- 死锁现象、线程的创建之实现Runnable接口
- java多线程之实现Runnable接口创建线程
- Web Service和WCF的到底有什么区别
- Design库,全部控件的使用
- 【HWOJ】计算字符个数
- 今天创建了CSDN博客,用于记录自己的学习经历
- java排序算法二分法 希尔排序 快速排序 归并排序
- 实现Runnable接口创建线程,并验证同步函数this锁--存疑
- MFC开发 常见控件库
- #define
- 编程规范
- Java,JSP中的日期分别获取年,月,日的方法。
- _CRT_SECURE_NO_WARNINGS警告的解决
- unity提示消息窗口
- 面向对象的内存调用
- Train and Test LeNet on your own dataset