package com.temp;
import java.util.HashMap;
import java.util.Map;
/**
* 多个线程一起运行,结果统一输出
* */
public class MultiThreads {
private Map<String, String> resultMap = new HashMap<String, String>();
private int processCount = 2;
public static void main(String[] args) {
long begin = System.currentTimeMillis();
MultiThreads mt = new MultiThreads();
new TaskThread(mt).start();
new PlanThread(mt).start();
int count = 0;
while (!mt.isFinished()) {
Thread.yield();
count++;
}
for (String val : mt.resultMap.values()) {
System.out.println(val);
}
System.out.println(System.currentTimeMillis() - begin);
System.out.println(count);
}
public int getProcessCount() {
return processCount;
}
public void put(String key, String value) {
this.resultMap.put(key, value);
this.processCount--;
}
public boolean isFinished() {
return this.processCount <= 0;
}
}
class TaskThread extends Thread {
private MultiThreads result;
public TaskThread(MultiThreads result) {
this.result = result;
}
@Override
public void run() {
try {
sleep(1000);
this.result.put("task", "This is a task.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class PlanThread extends Thread {
private MultiThreads result;
public PlanThread(MultiThreads result) {
this.result = result;
}
@Override
public void run() {
try {
sleep(1000);
this.result.put("plan", "This is a plan.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
此法适用于将一个大任务成为几个不相干的几块并行处理,提高效率。
分享到:
相关推荐
它支持跨平台、安全、可靠和事务处理,是整合多种通信技术的统一平台。 - **运行机制**:WCF包含四个核心元素:服务契约定义服务提供的操作,数据契约规定数据格式,消息契约定义消息结构,而绑定则配置通信方式、...
9. **并发控制**:OTL支持多线程编程,可以在多线程环境中安全地访问数据库。 10. **易于集成**:OTL的API设计简洁,易于理解和使用,能够快速地与现有的C++项目整合。 OTL与Oracle数据库的结合,使得开发人员能够...
在多线程环境中,合理的线程管理和同步机制至关重要。可以考虑使用锁、条件变量或其他并发控制策略来减少竞态条件和死锁,提高并发性能。 **6. 日志和调试优化** 在生产环境中,通常需要关闭或降低日志级别,以...
通过JDBC,Java应用程序可以执行SQL语句、处理结果集、管理事务等。常见的JDBC驱动包括MySQL Connector/J、Oracle JDBC驱动等。 【反射】 Java反射机制允许程序在运行时检查类的信息,如类名、方法、字段等,并能...
实时系统的数据流图强调及时性和准确性,可能涉及多线程处理和优先级调度。 - **决策支持系统**:帮助管理者分析和解决问题,如市场预测、风险评估。这类系统的数据流图通常包括数据获取、数据分析和结果展示等部分...
Java高级教程涵盖了多个主题,包括Java的IO系统和数据库交互,特别是通过JDBC。Java的IO(输入/输出)框架...通过学习这些内容,开发者能够有效地处理数据输入输出,实现与数据库的高效交互,并构建多线程和网络应用。
DBI还支持多线程环境,并描述了在多线程情况下如何确保线程安全性。同时,文档也提到了信号处理和取消操作的相关事宜。 ### 简单示例 文档中可能包含了一些简单的使用示例,以帮助开发者快速入门和理解DBI的使用...
针对线程安全性,DBI手册提供了相应的指导,以保证在多线程环境下使用DBI的安全性。另外,手册还提供了调试信息的输出、警告和错误消息的处理方式,以及如何处理致命错误。这些内容对于使用Perl进行数据库开发和运维...
XC语言支持多线程和多核操作,其编程结构可以被编译成短小的指令序列,避免了过度依赖库调用,确保了编程时不会出现死锁、竞态条件和内存违规等问题,使得编写、理解和调试程序更为容易。 在描述中提到的“Control,...
ODBC API包括一系列函数,如`SQLConnect`、`SQLDisconnect`、`SQLPrepare`、`SQLExecute`等,用于建立连接、执行SQL、处理结果等操作。 2.5 ODBC的其他功能 2.5.1 ODBC连接句柄的参数设置 通过设置连接属性,如`...
多线程交易是联机交易的一种特殊形式,它将交易内容拆分成多个可并行的独立事务,每个事务新起一个独立子线程处理,处理完成后将结果汇总到主线程返回。这种交易方式可以大大提升交易处理的效率,但同时也对日志系统...
9. **多线程数据库访问**:在多线程应用中,需要注意线程安全问题。每个线程应拥有独立的数据库连接,避免并发访问冲突。 10. **数据库连接池**:在大型系统中,为了提高性能和减少资源消耗,可以采用数据库连接池...
3. **多线程/异步处理**:由于服务器可能同时处理多个客户端的请求,因此需要了解多线程或异步处理机制,确保并发性能。 4. **错误处理**:在设计过程中,要考虑到网络异常、文件操作失败等情况,编写健壮的错误...
JDBC文档会详细解释如何建立数据库连接、执行SQL语句、处理结果集以及事务管理等。 至于"JavaWEB_PPT.rar",这可能是一个关于Java Web开发的PPT文件,涵盖了Servlet、JSP、过滤器、监听器等概念,这些都是构建Web...
5. **多线程**:Java提供对多线程的支持,可以创建Thread对象或实现Runnable接口,理解线程同步和互斥的概念,如synchronized关键字和wait/notify机制。 6. **网络编程**:Java的Socket编程用于客户端-服务器交互,...
本章讲解了JDBC驱动、连接数据库、执行SQL语句、处理结果集、事务管理和预编译语句。 ### 第28章:XML处理(XML Processing) XML是一种用于存储和交换数据的标记语言。本章介绍了DOM(Document Object Model)和...
JavaSE提供了丰富的类库,包括基本的数据类型、控制结构、异常处理、输入/输出、网络编程、多线程和图形用户界面(GUI)等组件,使得开发者可以构建复杂的应用系统。 JavaSE的主要特点包括: 1. **跨平台性**:...
在Java SE API中,我们可以找到用于输入输出、网络通信、数据处理、图形用户界面(GUI)构建以及多线程编程等核心功能的类和接口。 Java支持库的静态版本,如"Java支持库200版静态版Javalibfne",意味着这个库是预...
- **线程和并发**: 包含多线程操作的辅助方法,如线程同步、锁机制和异步编程支持。 - **字符串处理**: 提供增强的字符串操作功能,如格式化、替换、截取等。 - **类型转换**: 提供方便的类型转换方法,简化强...
- **避免不可重复读**:不可重复读是指在同一个事务中多次读取同一数据项,但结果不同,因为另一个事务已经修改了该数据。通过设置事务隔离级别为`REPEATABLE_READ`,可以防止不可重复读。 - **避免幻影读**:幻影读...