- 浏览: 800056 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (981)
- javascript (102)
- java (212)
- JQuery (81)
- 幽默笑话 (2)
- 只言片语 (6)
- 开发小记 (283)
- Hibernate (17)
- DWR (4)
- SQL (10)
- spring-ibatis (8)
- linux (24)
- Struts1 (8)
- Struts2 (16)
- spring (42)
- Mybatis (16)
- css (18)
- servlet (8)
- jdbc (4)
- jsp (1)
- spring-jdbc (2)
- FreeMarker (2)
- MySQL (24)
- JQuery-Grid (7)
- jstl (5)
- 正则表达式 (1)
- 面试集锦 (86)
- unix (18)
- 开发工具 (23)
- ajax (5)
- webservice (4)
- log4j (3)
- oracle (15)
- extjs (14)
- 其他 (9)
- 优秀技术参考地址 (1)
- 性能 (3)
- 数据库 (25)
- 算法 (15)
- 设计模式 (10)
- Python (3)
- AIX (5)
- weblogic (1)
- shell (14)
- quartz (5)
- 图形文件FusionCharts (1)
- Websphere (4)
- 转载 (5)
- hadoop (1)
- highchart (24)
- perl (22)
- DB2 (7)
- JBoss (1)
- JQuery Easy UI (9)
- SpringMVC (5)
- ant (5)
- echart (9)
- log4J配置 (3)
- 多线程 (10)
- 系统架构 (7)
- nginx (3)
- loadrunner1 (1)
- 分布式 (1)
- Dubbo (1)
- Redis (2)
- JMS (4)
- 自动化测试 (3)
- Spring循环依赖的三种方式 (1)
- spring-boot (2)
- 高级测试 (9)
- github (2)
- sonar (1)
- docker (6)
- web前端性能优化 (1)
- spring-aop (6)
- rabbit (1)
- ELK (1)
- maven (1)
- minio (1)
最新评论
-
zengshaotao:
jstl1point0 写道很好啊,如果有带Session会话 ...
Nginx+Tomcat搭建高性能负载均衡集群 -
jstl1point0:
很好啊,如果有带Session会话的怎么搞呢
Nginx+Tomcat搭建高性能负载均衡集群
package thread;
public class TestSync implements Runnable{
Timer timer = new Timer();
public static void main(String args[]){
TestSync ts = new TestSync();
Thread t1 = new Thread(ts);
Thread t2 = new Thread(ts);
t1.setName("t1");
t2.setName("t2");
t1.start();
t2.start();
}
public void run(){
timer.add(Thread.currentThread().getName());
}
}
class Timer{
private static int num=0;
//没有synchronized关键字,执行结果:
// t1,你是第2个使用timer的线程!
// t2,你是第2个使用timer的线程!
//有synchronized关键字,执行结果:
// t1,你是第1个使用timer的线程!
// t2,你是第2个使用timer的线程!
//synchronized可以对需要同步执行的代码进行同步
//加在代码块上和方法上,那么同步的粒度将会发生改变
public synchronized void add(String name){
num++;
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(name+",你是第"+num+"个使用timer的线程!");
}
}
package thread;
public class DeadLockTest implements Runnable{
public int flag = 1;
static Object o1 = new Object(),o2 = new Object();
public void run() {
System.out.println("flag = "+ flag);
if(flag ==1){
synchronized(o1){
try {
System.out.println("lock o1,waitting for o2,sleeping......");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(o2){
System.out.println("1");
}
}
}
if(flag ==2){
synchronized(o2){
try {
System.out.println("lock o2,waitting for o1,sleeping......");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(o1){
System.out.println("2");
}
}
}
}//run block
public static void main(String args[]){
DeadLockTest dl1 = new DeadLockTest();
DeadLockTest dl2 = new DeadLockTest();
dl1.flag = 1;
dl2.flag = 2;
Thread t1 = new Thread(dl1);
Thread t2 = new Thread(dl2);
t1.start();
t2.start();
//程序一直处于挂起,等待状态。。。。。。
// flag = 1
// lock o1,waitting for o2,sleeping......
// flag = 2
// lock o2,waitting for o1,sleeping......
}
}
public class TestSync implements Runnable{
Timer timer = new Timer();
public static void main(String args[]){
TestSync ts = new TestSync();
Thread t1 = new Thread(ts);
Thread t2 = new Thread(ts);
t1.setName("t1");
t2.setName("t2");
t1.start();
t2.start();
}
public void run(){
timer.add(Thread.currentThread().getName());
}
}
class Timer{
private static int num=0;
//没有synchronized关键字,执行结果:
// t1,你是第2个使用timer的线程!
// t2,你是第2个使用timer的线程!
//有synchronized关键字,执行结果:
// t1,你是第1个使用timer的线程!
// t2,你是第2个使用timer的线程!
//synchronized可以对需要同步执行的代码进行同步
//加在代码块上和方法上,那么同步的粒度将会发生改变
public synchronized void add(String name){
num++;
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(name+",你是第"+num+"个使用timer的线程!");
}
}
package thread;
public class DeadLockTest implements Runnable{
public int flag = 1;
static Object o1 = new Object(),o2 = new Object();
public void run() {
System.out.println("flag = "+ flag);
if(flag ==1){
synchronized(o1){
try {
System.out.println("lock o1,waitting for o2,sleeping......");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(o2){
System.out.println("1");
}
}
}
if(flag ==2){
synchronized(o2){
try {
System.out.println("lock o2,waitting for o1,sleeping......");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(o1){
System.out.println("2");
}
}
}
}//run block
public static void main(String args[]){
DeadLockTest dl1 = new DeadLockTest();
DeadLockTest dl2 = new DeadLockTest();
dl1.flag = 1;
dl2.flag = 2;
Thread t1 = new Thread(dl1);
Thread t2 = new Thread(dl2);
t1.start();
t2.start();
//程序一直处于挂起,等待状态。。。。。。
// flag = 1
// lock o1,waitting for o2,sleeping......
// flag = 2
// lock o2,waitting for o1,sleeping......
}
}
发表评论
-
选股神器
2022-08-20 15:07 244最近闲来无事,突发奇想,将自己的选股思路自动化,计算机化。。 ... -
rpm安装jdk,设置环境变量
2019-05-12 22:49 6481、将jdk的rpm包拷贝到 ... -
java安全编码
2019-01-18 22:31 494软件安全问题,一般 ... -
生产者消费者
2018-07-01 21:33 439package function.thread; i ... -
打印mybatis的执行语句到控制台和文件
2017-12-13 15:11 827log4j.rootLogger=INFO,CONSOLE, ... -
java中类的加载顺序介绍(ClassLoader)
2017-11-14 11:41 8311、ClassNotFoundExcetpion 我们在 ... -
守护线程
2017-11-13 16:40 447对于线程,有个守护的线程的概念。如何理解呢?比如A线程里,n ... -
类加载机制及反射
2017-09-24 08:45 597一、Java类加载机制 ... -
java+selenium2 自动化测试框架
2017-09-15 09:36 1034package web.selenium2; ... -
JMS实例
2017-08-21 15:40 4941. JMS架构 Java 消息服务(Java M ... -
linux设置java环境
2017-08-07 16:47 464linux配置java环境变量(详细) 一. 解压安装jdk ... -
分布式
2017-07-19 12:12 465转载请注明出处:http://blog.csdn.net/l ... -
tomcat+nginx+redis
2017-07-18 16:46 517应用系统的基本架构: -
java调用远程机器的shell脚本
2017-07-14 12:19 1607此程序的目的是执行远程机器上的Shell脚本。 【环境参数 ... -
生产者消费者进阶(带有condition)
2017-05-09 17:56 603package function.thread; ... -
多线程之 CountDownLatch
2017-05-01 13:01 534package function.thread; ... -
判断服务器类型
2017-04-12 10:52 501开发时一般用tomcat,然后在测试环境发布时使用的是web ... -
IE的不同文本浏览模式页面显示
2017-04-11 14:34 555现象描述:最近在遇到的问题就是在在Chrome,火狐页面都正 ... -
java中Filter、Servlet、Listener的学习
2017-03-29 21:52 4721、Filter的功能filter功能,它使用户可以改变一个 ... -
高并发,线程池
2017-03-29 21:52 11201.高并发的内容 Zookee ...
相关推荐
Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...
C# 多线程编程实例实战 本文探索了 C# 多线程编程实例实战,特别是单个写入程序/多个阅读程序的线程同步问题。在这种情况下,写入程序需要修改共享资源,而阅读程序需要读取数据。为了解决这个问题,需要满足两个...
三、多线程编程实例 实例代码可能包含以下三个经典场景: 1. 并行计算:创建多个线程,每个线程负责计算一部分任务,最后汇总结果。这在大数据处理和科学计算中很常见。 ```c #include #include #define NUM_...
本文将深入探讨多线程编程实例及其在网络编程中的应用。 首先,理解多线程的概念是必要的。线程是操作系统分配CPU时间的基本单元,一个进程中可以包含多个线程。多线程编程允许开发者创建并行运行的任务,这些任务...
本文将深入探讨“vc多线程编程实例”,并详细解释如何利用多线程技术提高程序性能。 首先,多线程是指在一个应用程序中同时运行多个执行线程。这允许程序的不同部分同时工作,而不是按顺序执行,从而极大地提高了...
在C#编程中,多线程是一个至关重要的概念,特别是在现代计算环境中,它能极大地提升应用程序...在文档"C#多线程编程实例实战.doc"中,应详细介绍了这些知识点并提供了具体示例,帮助读者深入理解和实践C#的多线程编程。
标题中的“C语言多线程编程实例”直接指出了文档的主题内容,即围绕C语言编程中多线程编程技术的实例讲解。多线程是编程中的一项关键技术,能够允许程序同时执行多个线程,提高程序的运行效率和响应速度。 描述部分...
本书“Java多线程编程实例”深入浅出地讲解了如何在Java环境中实现多线程操作,尽管出版时间较早,但其内容的经典性和实用性使其在现代开发中仍具有极高的参考价值。 首先,我们要理解Java中的线程是如何创建的。...
《Java多线程编程实例》这本书深入浅出地探讨了Java中的多线程编程,通过丰富的实例帮助读者理解和掌握这一复杂主题。随书源码提供了实际操作的机会,以便读者能够亲手实践书中的示例,加深理解。 1. **线程创建...
标题中的"C#多线程编程实例 线程与窗体交互源码"意味着这个示例将展示如何在线程安全的环境下操作UI组件。在C#中,我们通常使用`Control.Invoke`或`Control.BeginInvoke`方法来解决这个问题。这些方法会在正确的线程...
这个压缩包“VC++多线程编程实例及讲解”提供了关于如何在Microsoft Visual C++中实现多线程的详细教程和实践案例。 一、多线程基础 多线程是现代操作系统中的一个特性,它允许程序创建多个并发执行的线程。在VC++...
本资料“Visual C++多线程编程实例及讲解”将深入探讨这一主题。 首先,我们要理解什么是多线程。线程是操作系统分配CPU时间的基本单元,一个进程中可以有多个线程同时执行,它们共享同一内存空间,这样就能在等待I...
在标题中提到的“MFC多线程编程实例——多线程画线源码”,我们主要关注的是如何在同一个窗口或图形界面上,通过多个线程同时执行画线操作。这通常涉及到以下几个关键知识点: 1. **线程基础**:在计算机科学中,...
### Java多线程编程实例解析 #### 1. 创建线程的方式 在Java中,创建线程有两种主要方式:通过继承`Thread`类或实现`Runnable`接口。 - **继承Thread类**:创建一个新类继承自`Thread`,并重写其`run()`方法。在`...
C# Socket多线程编程实例是一个讲解如何使用C#语言结合多线程技术来实现网络通信的具体例子。 C#(读作“看井”)是由微软公司推出的一种面向对象的编程语言,它集成于.NET框架中。C#的设计初衷是为了解决当时Sun...
Python 多线程编程实例,一个综合示例
C#多线程编程实例实战 C#多线程编程实例实战是指在C#语言中实现多线程编程的实例和实战经验。多线程编程是指在同一个进程中创建多个线程,以便提高程序的执行效率和响应速度。在C#语言中,可以使用Thread类和线程池...
C# Socket 多线程编程实例 C# 是微软随着 VS.net 新推出的语言,它具有 C++ 的强健和 VB 等的 RAD 特性。微软推出 C# 主要是为了对抗 Sun 公司的 Java。C# 在网络编程方面也自然不甘落后于人。这篇文章主要介绍 C# ...
"C#多线程编程实例 线程与窗体交互源码.rar"这个压缩包文件提供了一些实际的代码示例,帮助开发者理解和实践如何在C#中进行多线程编程以及如何与窗体进行交互。 1. **线程基础**:在C#中,可以使用`System....
在VC中利用API实现多线程编程实例