- 浏览: 2288009 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
特别说明:java线程相关的参考了张孝祥老师的代码
参考资料:
《深入浅出 Java Concurrency》目录
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
问题如下:
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1!
网上实现如下:
http://skyuck.iteye.com/blog/540660
参考资料:
《深入浅出 Java Concurrency》目录
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
问题如下:
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1!
public class MultiThreadTest { static MyData m = new MyData(); public static void main(String[] args) { MyData m2 = new MyData(); new Thread(new MyDataManager(m2)).start(); new Thread(new MyDataManager2(m2)).start(); new Thread(new Runnable(){ @Override public void run() { m.inc(); } }).start(); new Thread(new Runnable(){ @Override public void run() { m.dec(); } }).start(); System.out.println(m.getAge()); } } class MyDataManager implements Runnable{ MyData m ; public MyDataManager(MyData m){ this.m = m; } @Override public void run() { m.inc(); } } class MyDataManager2 implements Runnable{ MyData m ; public MyDataManager2(MyData m){ this.m = m; } @Override public void run() { m.dec(); } } class MyData{ private int age = 0; synchronized void inc(){ ++age; } synchronized void dec(){ --age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
网上实现如下:
http://skyuck.iteye.com/blog/540660
public class threadtest1 { private int j; Thread thread = new Thread(); private synchronized void inc() { j++; System.out.println(thread.currentThread().getName() + "-inc:" + j); } private synchronized void dec() { j--; System.out.println(thread.currentThread().getName() + "-dec:" + j); } class inc implements Runnable { public void run() { for (int i = 0; i < 100; i++) { inc(); } } } class dec implements Runnable { public void run() { for (int i = 0; i < 100; i++) { dec(); } } } public static void main(String[] args) { threadtest1 tt = new threadtest1(); inc inc = tt.new inc(); dec dec = tt.new dec(); for (int i = 0; i < 2; i++) { Thread t = new Thread(inc); t.start(); t = new Thread(dec); t.start(); } } }
发表评论
-
java json-lib & jQuery & jsonp
2016-06-30 11:31 824参考链接: 1、http://hanqunfeng.iteye ... -
随机分配算法(Intege)
2016-01-08 13:05 5192参考资料: http://blog.csdn.net/yaer ... -
XSS之xssprotect
2012-12-07 23:03 29487参考资料 1 跨网站脚本 ... -
Java之ThreadLocal(Synchronized)
2011-10-31 10:10 2691参考资料 1 深入研究java.lang.ThreadLoca ... -
Java之synchronized,wait,notify结合运用示例
2011-10-26 11:54 5936场景一:要求二个线程各 ... -
Java之synchronized深入应用
2011-10-23 08:03 1940参考资料 1 java synchronized详解 http ... -
Java之Timer入门
2011-10-11 15:32 1692参考资料 1 java中timer用 ... -
Java之线程(匿名内部类)
2011-10-10 16:36 164281 Thread对象 Thread t = new Thr ... -
Java之线程(join)
2011-10-10 15:39 1479运用场景:多个线程之间 ... -
Java之线程(synchronized,wait(),notify(),notifyAll())
2011-10-10 15:03 3249参考资料 Java多线程入门大全(适用于有一定基础者) htt ... -
Java之线程(sleep,线程名)
2011-10-10 13:09 9714参考资料 1 Java线程:创建与启动 http://lava ... -
Java之线程入门
2011-10-10 11:11 1533参考资料 1 Java线程:概 ... -
java之表反向生成类
2011-09-23 16:41 3480环境:XP+JDK1.5+Oracle10g 注意事项 1 请 ... -
java之线程, NIO学习资料
2011-09-19 12:13 1130Concurrent In Java 6 第一部分 集合 ... -
Java之BigDecimal
2011-09-15 10:12 18024参考资料 1 java.math.BigDecimal的用法 ... -
java.lang.OutOfMemoryError异常解决方法
2011-08-27 16:47 2107转载:java.lang.OutOfMemoryError异常 ... -
Jcom之jp.ne.so_net.ga2.no_ji.jcom.JComException: createInstance() failed HRESULT=
2011-08-25 12:33 11736参考资料 java应用jcom将word转pdf http:/ ... -
Quartz之AnnualCalendar
2011-08-11 17:14 5817问题1 我想排除一年中 ... -
Quartz之InterruptableJob
2011-08-11 11:03 11779问题1 由于业务需要,停止Quartz中正在执行的任务 Qua ... -
Quartz之JobExecutionException
2011-08-11 10:06 13403问题1 如果你的任务执 ...
相关推荐
例如,第 1 题考查了 Thread 类的基本方法,第 2 题考查了线程的状态,第 3 题考查了线程的优先级等。 三、判断题 在判断题中,我们可以看到各种关于 JAVA 多线程编程的技术细节。例如,第 1 题考查了线程的生命...
在Java编程语言中,多线程是核心特性之一,它使得程序可以同时执行多个不同的任务,从而提高了系统资源的利用率和程序的响应速度。本文将深入探讨Java中的多线程概念,以及如何通过实践来提升对这一主题的理解。 ...
在Java中,多线程的实现主要通过两种方式:继承Thread类和实现Runnable接口。理解并掌握多线程的使用对于任何Java开发者来说都至关重要。 一、线程的创建与启动 1. 继承Thread类:创建一个新的类,该类继承自Thread...
在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable接口以及使用ExecutorService和Future等高级API。下面将详细探讨这些知识点。 首先,Java中创建线程主要有两种方法。一种是通过继承Thread...
在Java中,多线程是一种非常重要的编程概念,...这些面试题涵盖了Java多线程编程的基础知识、同步机制、线程间通信以及并发集合类等多个方面。在准备面试时,对这些问题进行深入理解和准备,能够有效提升面试的成功率。
以下是一些关于Java多线程的面试题及其答案,涵盖了基础概念、并发控制、线程安全以及性能优化等方面。 1. **什么是Java多线程?** 多线程是指在单个程序中同时执行多个线程,这样可以提高应用程序的效率和响应...
Java线程亲和性(Thread Affinity)是一个高级并发编程概念,主要涉及到操作系统调度和硬件资源的优化。在多核处理器系统中,线程亲和性允许开发者指定某个线程应该运行在哪个特定的处理器核心上,从而提高性能、...
以下是对Java多线程面试题59题集合中可能涉及的一些关键知识点的详细解析。 1. **线程的创建方式** - 继承Thread类:创建一个新的类,该类继承自Thread类,并重写其run()方法。 - 实现Runnable接口:创建一个实现...
Java多线程是Java编程中不可或缺的一部分,它允许并发执行多个任务,从而提高应用程序的效率和响应速度。本文将深入探讨Java多线程的相关知识点,包括它的用途、创建线程的方式、start()与run()的区别、Runnable和...
2. **Java中的线程创建方式**:Java提供了两种创建线程的方式——继承Thread类和实现Runnable接口。继承Thread类直接覆盖run()方法,而实现Runnable接口则需要创建一个实现了Runnable接口的类,并重写run()方法,...
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...
Java Thread多线程全面解析涵盖了Java编程中关于线程的重要概念和实践技巧。在Java中,多线程是并发编程的基础,允许程序同时执行多个任务,提高系统资源利用率和应用程序的响应速度。 线程的生命周期包括五个基本...
Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...
2. **线程创建方式**:Java提供两种创建线程的方式:继承`Thread`类或者实现`Runnable`接口。这两种方式创建的线程都可以通过`start()`方法启动,但它们不能交叉执行,因为Java的线程调度是由JVM控制的。 3. **临界...
Java中的多线程是面试中常见的话题,因为它在并发编程中扮演着重要角色。线程允许应用程序同时执行多个任务,从而提高系统效率和响应性。理解线程的概念、创建方式以及状态转换对于Java开发者至关重要。 1. **线程...
在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新的类,让它继承Thread类时,可以通过重写`run()`方法来定义线程执行的任务。然后创建该类的对象,并...
Java 多线程知识讲解及练习题 Java 多线程基础知识的了解是 Java 程序设计的重要组成部分,本资源摘要信息对 Java 多线程基础知识进行了详细的讲解和练习题。 1. sleep() 和 wait() 的区别 sleep() 是 Thread 类...
"多线程编程详解" Java 多线程编程是指在一个程序中可以运行多个线程,以提高程序的执行效率和响应速度。...Java 中的多线程编程可以通过 Thread 类和 Runnable 接口来实现,需要解决线程同步和线程阻塞问题。
Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,或者实现Runnable接口并提供run()方法。在run()方法中编写线程执行的代码。 进度条通常由主线程负责...