- 浏览: 101021 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (209)
- http://docs.jpush.io/server/java_sdk/ (1)
- SpingMVC ModelAndView (1)
- Model (1)
- Control以及参数传递 (1)
- https://www.alipay.com/ (1)
- 检查指定的字符串列表是否不为空。 (1)
- 转自http://my.oschina.net/rpgmakervx/blog/505434 (1)
- 压缩js (1)
- 含包含 字母数字校验 (1)
- 判断浏览器是ie (1)
- fixbox (0)
- 转自http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html (1)
- http://dl2.iteye.com/upload/attachment/0113/2406/afbd8d53-dcad-3afc-8d78-41c1591 (0)
- IDEA (0)
- maven搭建 (0)
- http://www.jeasyuicn.com/api/docTtml/index.htm (1)
- 给tomcat添加运行内存: (1)
- JPUSH推送 (1)
- requestScope (0)
- oracle中plsql安装client10连接数据库 (1)
- 不需要安装oracle11g (1)
- tuikuan (1)
- http://www.hjxmall.com/index.php (1)
- java (1)
- 参考 (1)
- xml签名验签模拟程序 (1)
- 技术网站收集分享 (1)
- Java NIO提供了与标准IO不同的IO工作方式 ------来源于 http://www.iteye.com/magazines/132-Java-NIO (1)
- oracle表查询语句优化 (0)
- oracle (5)
- a (1)
- TenpayHttpClient (2)
- mongodb (1)
- http://www.qcloud.com/product/cmongo.html?utm_source=pcsem1&utm_medium=bdgj46&utm_campaign=baidu (1)
- SpringMVC整合MongoDB开发 (0)
- SpringMVC整合MongoDB开发 https://www.mongodb.org (1)
- Java 语言中常见问题总结 (1)
- 数据库SQL优化大总结 (1)
- 拦截器与过滤器的区别 (1)
- Struts2中拦截器与过滤器的区别及执行顺序 (1)
- Spring声明式事务管理与配置 (0)
- oracle OPERTION (1)
- java 高并发多线程开发 (1)
- Collection 与 map 接口相关集合 (1)
- 多线程开发实践 (1)
- JVM调优总结 转自 http://www.importnew.com/18694.html (1)
- redis 五种数据类型的使用场景 转自于 http://blog.csdn.net/gaogaoshan/article/details/41039581 (1)
- HttpWatch http基础 来自于http://blog.csdn.net/gaogaoshan/article/details/21237555 (1)
- maven 远程仓库 http://blog.csdn.net/gaogaoshan/article/details/40266779 (1)
- 生成Webservice客户端的4中方法 http://blog.csdn.net/gaogaoshan/article/details/8980775 (1)
- http://fgh2011.iteye.com/blog/1564283 (1)
- sleep和wait有什么区别 http://xiaowei2002.iteye.com/blog/2174188 (1)
- JDK中常用包及其类 常见的几种RuntimeException (1)
- Java的运行原理 (1)
- mybatis缓存的使用及理解 http://my.oschina.net/dxqr/blog/123163 (1)
- 软件架构设计分析 (1)
- redis技术总结 (3)
- java面试总结知识点 (1)
- ZooKeeper技术 (1)
- Hadoop (1)
- sso单点登录 (1)
- SpringIOC (1)
- 书签ssssssssssssssssssssss (1)
- spring事务的隔离级别 http://www.cnblogs.com/yangy608/archive/2011/06/29/2093478.html (1)
- 秒杀系统架构分析与实战 http://www.importnew.com/18920.html (1)
- oracle 连接plsql配置 (1)
- maven工程集成springmvc http://blog.csdn.net/fox_lht/article/details/16952683 (1)
- java类序列化与反序列化版本唯一号serialVersionUID (1)
- spring注解用法总结 (1)
- eclipse导入maven项目找不到资源文件方法 (1)
- dubbo (0)
- socket 网络编程 服务器与客户端 编程 (1)
- Thread与Runnable实现线程利用线程插队实现求和操作 (1)
- 生产者与消费者模式 (1)
- JAXB注解 java 关于xml的注解,自动生成xml文件 - @XML*** (1)
- xml 与JAVAbean转换 (1)
- MAP (2)
- decimalToString (1)
- 反编译插件 (0)
- 反编译插件 https://sourceforge.net/projects/jadclipse/?source=typ_redirect (1)
- AWX (1)
- 官网地址Dinp (1)
- public interface ExecutorService extends Executor (1)
- MAIN (1)
- 转自于 http://blog.csdn.net/lufeng20/article/details/24314381 (1)
- JaxbUtil (1)
- HttpXmlClient (0)
- Http post 请求 (1)
- URLDecoder (1)
- spdb (0)
- 订单号生成规则 (1)
- 距离0点毫秒数 (1)
- MyBatis存储过程调用java (1)
- Banks (1)
- 学习网址 (1)
- hots配置oracle数据库配置修改 (1)
- 支付宝文档 (1)
- Jadclipse (1)
- filter (0)
- Filter过滤器 (1)
- 工具类 fixbox (1)
- java quartz (0)
- java quartz 实现定时任务,每个礼拜一到礼拜五定时执行 (1)
- Thread (4)
- getResourceAsStream (1)
- BigData (1)
- 开源架构 (17)
- 架构 (0)
- 文件操作 (2)
- tools (20)
- 测试工具 (1)
- vm (1)
- mq (1)
- blog (1)
- 开源架构搭建技术 (6)
- JAVA细节技术点总结 (1)
- 优化技术 (1)
- LINUX命令使用 (1)
- spring (2)
- 大数据 (1)
- struts2 (1)
- python (1)
- pay (1)
- linux (1)
- 压力测试 (1)
- 代码检查插件 (1)
- 游戏端开发 (1)
- 微信开发相关 (1)
- 搜索引擎 (1)
- 网络技术 (1)
- 分布式部署 (1)
- 堆栈信息 (1)
最新评论
package cn.itcast.heima2;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 主要利用资源对象控制多线程同步问题设计思想,
* 把需要同步的资源放在单独的类中,或者是加解密这类高类聚的,程序健壮性更强
*
* 子线程执行100,接着执行主线程10,如此往复执行50次。
*
* @author Administrator
*
*/
public class TraditionalThreadCommunication {
/**
* @param args
*/
public static void main(String[] args) {
final Business business = new Business();
new Thread(
new Runnable() {
@Override
public void run() {
for(int i=1;i<=50;i++){
business.sub(i);
}
}
}
).start();
for(int i=1;i<=50;i++){
business.main(i);
}
}
}
class Business {
private boolean bShouldSub = true;
public synchronized void sub(int i){
while(!bShouldSub){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=10;j++){
System.out.println("sub thread sequence of " + j + ",loop of " + i);
}
bShouldSub = false;
this.notify();
}
public synchronized void main(int i){
while(bShouldSub){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=100;j++){
System.out.println("main thread sequence of " + j + ",loop of " + i);
}
bShouldSub = true;
this.notify();
}
}
import java.util.concurrent.atomic.AtomicInteger;
/**
* 主要利用资源对象控制多线程同步问题设计思想,
* 把需要同步的资源放在单独的类中,或者是加解密这类高类聚的,程序健壮性更强
*
* 子线程执行100,接着执行主线程10,如此往复执行50次。
*
* @author Administrator
*
*/
public class TraditionalThreadCommunication {
/**
* @param args
*/
public static void main(String[] args) {
final Business business = new Business();
new Thread(
new Runnable() {
@Override
public void run() {
for(int i=1;i<=50;i++){
business.sub(i);
}
}
}
).start();
for(int i=1;i<=50;i++){
business.main(i);
}
}
}
class Business {
private boolean bShouldSub = true;
public synchronized void sub(int i){
while(!bShouldSub){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=10;j++){
System.out.println("sub thread sequence of " + j + ",loop of " + i);
}
bShouldSub = false;
this.notify();
}
public synchronized void main(int i){
while(bShouldSub){
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int j=1;j<=100;j++){
System.out.println("main thread sequence of " + j + ",loop of " + i);
}
bShouldSub = true;
this.notify();
}
}
相关推荐
传统上,嵌入式系统受限于微控制器的代码空间,使用常规的面向对象和多线程模型往往会导致资源过度消耗,不适配于嵌入式环境。 为了解决嵌入式系统中软件开发的这一难题,本文提出了一种创新的编程机制,通过特殊...
在多线程环境中,线程间的同步和通信至关重要,以避免数据竞争和死锁等问题。 1. Synchronize方法:用于在线程与主线程间安全地交换数据。在Execute方法中,可以调用Synchronize,确保代码在主线程上下文中执行。 ...
相比于单线程,多线程能充分利用CPU资源,提升程序性能,尤其是在I/O密集型或计算密集型应用中。 二、VC多线程API 在VC中,多线程编程主要依赖于Windows API提供的`CreateThread`函数或者C++标准库中的`std::thread...
综上所述,《多线程编程指南》涵盖了从理论到实践的多线程编程各个方面的知识,旨在帮助开发者理解和掌握多线程编程的核心概念和技术要点,从而能够有效地设计和实现高性能的多线程应用程序。无论是初学者还是有一定...
通过这个易语言项目实例,我们可以学习到如何利用多线程技术来提高下载效率,同时掌握易语言的基本编程技巧和面向对象设计思想。无论是个人学习、学生毕业设计,还是小团队开发项目,都能从中汲取宝贵的经验,为未来...
在这种系统中,软件通常基于Windows操作系统,利用多线程技术可以提高系统的实时性能和并行处理能力。在文章中,作者通过创建用户界面线程和辅助线程,实现数控系统的多个功能模块的实时并行处理,这包括用户界面...
多线程的核心思想是在一个进程中创建多个线程来并行执行不同的任务,从而充分利用计算机资源。 #### 二、多线程爬虫的实现步骤 1. **初始化线程**:首先需要定义一个线程委托,它用于指定线程执行的具体任务。例如...
本课件主要讲解了Java多线程应用的基本概念、线程的生命周期、多线程同步机制等重要知识点。 首先,课件讲解了线程的基本概念。线程是计算机正在执行的程序中的一个控制流程。线程本身不是完整程序,没有执行的入口...
1. **Monitor**:C#中的Monitor类提供了基于对象锁的线程同步,使用`Monitor.Enter`和`Monitor.Exit`方法获取和释放锁。生产者在向队列添加元素时会获取锁,完成后再释放;消费者在取元素时同样需要获取锁,确保同一...
汇编语言实验8-多线程.doc ...通过本实验,我们可以深入了解 Windows 程序设计的基本思想和基于消息的程序设计方法,并且学会设计一个多线程同步程序,解决线程同步问题,提高程序的执行效率和可靠性。
C++11标准引入了对多线程的支持,使得开发者可以直接在C++代码中处理并发任务,从而充分利用多核处理器的优势。本资源包“多线程精品资源--based on C++11 , a mini threadpool , accept varia.zip”显然聚焦于C++11...
这种模式允许开发者编写异步代码而不必担心线程同步问题。 **5. 异步和多线程的关联** 异步编程和多线程紧密相关,但又有所不同。异步编程侧重于非阻塞式的编程模型,使得程序能够在等待某个操作完成的同时继续...
在Delphi中,可以使用TThread类来创建和管理线程,同时利用T semporal、TCriticalSection或TSemaphore等同步对象来控制对共享资源的访问。以下是对生产者消费者模式在Delphi中的实现步骤的详细说明: 1. **定义共享...
首先,多线程下载的核心思想是将一个大文件分割成多个小部分,每个部分在一个单独的线程中进行下载。这样,多个线程可以同时工作,充分利用网络资源,达到加速下载的目的。在VC++中,我们可以利用Windows API中的...
线程同步是为了避免多个线程同时访问共享资源导致的数据不一致问题,Java提供了多种同步机制,如synchronized关键字、wait()和notify()方法、ReentrantLock重入锁以及Semaphore信号量等。 设计模式是软件工程中经过...
在Java编程领域,多线程是一项至关重要的技术,它允许应用程序同时执行多个任务,从而提高系统资源利用率和程序性能。本文将深入探讨Java中的多线程概念,以及Doug Lea在此领域的贡献。 首先,理解多线程的基本概念...
需要注意的是,多线程可能会带来资源竞争和同步问题,开发者需要合理控制线程数量,避免过多线程导致系统资源耗尽。此外,适当的错误处理和异常捕获机制也是必不可少的,以确保工具在遇到网络问题或目标主机响应慢时...