package com.ietree.multithread.sync;
/**
* 多线程之对象同步锁和异步锁Demo
*
* @author ietree
*/
public class SynAndAsynDemo {
public static void main(String[] args) {
final SynAndAsynDemo mo = new SynAndAsynDemo();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
mo.methodA();
}
},"t1");
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
mo.methodB();
}
},"t2");
t1.start();
t2.start();
}
// 方法A
public synchronized void methodA(){
try {
System.out.println(Thread.currentThread().getName());
// 休眠4秒
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 方法B
public void methodB(){
System.out.println(Thread.currentThread().getName());
}
}
package com.ietree.multithread.sync;
/**
* 多线程之对象同步锁和异步锁Demo
*
* @author ietree
*/
public class SynAndAsynDemo {
public static void main(String[] args) {
final SynAndAsynDemo mo = new SynAndAsynDemo();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
mo.methodA();
}
},"t1");
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
mo.methodB();
}
},"t2");
t1.start();
t2.start();
}
// 方法A
public synchronized void methodA(){
try {
System.out.println(Thread.currentThread().getName());
// 休眠4秒
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 方法B
public synchronized void methodB(){
System.out.println(Thread.currentThread().getName());
}
}
package com.ietree.multithread.sync;
public class RunThread extends Thread {
// volatile
private boolean isRunning = true;
private void setRunning(boolean isRunning) {
this.isRunning = isRunning;
}
public void run() {
System.out.println("进入run方法..");
int i = 0;
while (isRunning == true) {
// ..
}
System.out.println("线程停止");
}
public static void main(String[] args) throws InterruptedException {
RunThread rt = new RunThread();
rt.start();
Thread.sleep(1000);
rt.setRunning(false);
System.out.println("isRunning的值已经被设置了false");
}
}
进入run方法.. isRunning的值已经被设置了false 之后进入死循环
package com.ietree.multithread.sync;
public class RunThread extends Thread {
// volatile
private volatile boolean isRunning = true;
private void setRunning(boolean isRunning) {
this.isRunning = isRunning;
}
public void run() {
System.out.println("进入run方法..");
int i = 0;
while (isRunning == true) {
// ..
}
System.out.println("线程停止");
}
public static void main(String[] args) throws InterruptedException {
RunThread rt = new RunThread();
rt.start();
Thread.sleep(1000);
rt.setRunning(false);
System.out.println("isRunning的值已经被设置了false");
}
}
isRunning的值已经被设置了false 线程停止
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有