关于多线程
package com.example;
public class SYN {
public synchronized void fun1() {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" fun1");
}
public synchronized void fun2() {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" fun2");
}
}
两个线程分别死循环调用这两个方法,同一个SYN对象
输出示例
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-0 fun1
Thread-1 fun2
Thread-1 fun2
方法调用后释放锁,为什么可以连续抢到这么多次
ps:写生产者消费者时遇到的,完整代码在我博客里,不过这些应该够了
public class SYN {
public synchronized void fun1() {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" fun1");
}
public synchronized void fun2() {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" fun2");
}
}
两个线程分别死循环调用这两个方法,同一个SYN对象
输出示例
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-1 fun2
Thread-0 fun1
Thread-1 fun2
Thread-1 fun2
方法调用后释放锁,为什么可以连续抢到这么多次
ps:写生产者消费者时遇到的,完整代码在我博客里,不过这些应该够了
...全文
相关推荐
C#多线程互斥实例 多线程获取同一变量
C#多线程互斥实例 多线程获取同一变量(不重复)。是一个很好的学习例子
Java多线程之多线程异常捕捉
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉,通过此篇文章给大家分享Java多线程之多线程异常捕捉,需要的朋友可以参考下
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行
多线程进度条(真正的多线程实现)
多线程进度条(真正的多线程实现) 通过进行间通信,实现的真正的多线程进度条 数据处理与进度条界面处于不同的进程,真正实现进度条的多线程
基于python的多线程例子,详细介绍了多线程处理
基于python的多线程例子,详细介绍了多线程处理,便于理解多线程


Java SE
