`

threadpool的使用

    博客分类:
  • java
 
阅读更多

    最近在项目中碰到一个这样的需求,需要对约50条以上的数据,做批量处理。而每条数据的处理,都需要远程调用一次接口。因此想到了使用多线程来完成。

     对多线程没有太多的经验,参考一下他人的代码和设计

     1.threadpool

     2. java.util.concurrent.CoutDownLatch

 

可以参考例子http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html

 

 

 

这个例子中,有个疑惑,在driver中,startSignal和doneSignal
  是作为method的形式参数传递给另外一个线程worker的。

在例子中,可以看到在driver中,修改startSignal,worker中的startSignal同样会受到影响。

这样就有了疑问,startsignal 其实是作为thread的私有变量的,这样,应该是driver线程和worker线程各维持一份的。但是在例子中的情况,是因为

1.传递的是对象,所以实际传递的是地址?

这样的现象一般在调用函数式,传入形参为对象时发生。对目标对象进行修改,内存中的数据也会改变,使得原始对象中的值也发生改变。但是一般大家都不提倡这样做,而在源码中发生这种情况,不太可能。

另外,此处传递参数的方式,不是原始对象,传递给内部的某个mothod,而是传递给另外一个线程。。。

写个代码验证一下,在线程中传递对象是否和以method方式传递对象类的形参一样。

 

2.A synchronization aid  ???

 

 

 【valotile,sycnonized】

CoutDownLatch is  an A synchronization aid.

await 

    

 

分享到:
评论

相关推荐

    c#的ThreadPool使用笔记.pdf

    在给出的代码示例中,展示了如何使用`ThreadPool`来调度工作项。首先,定义了一个`WaitCallback`委托实例`waitCallback`,这个委托类型指定了一个没有返回值但接受一个`Object`参数的方法。`MyThreadWork`方法就符合...

    python线程池threadpool使用篇

    在使用threadpool之前,需要先通过pip安装该包: ``` pip install threadpool ``` 安装完成后,我们可以引入threadpool模块并开始使用线程池。以下是使用Python threadpool的基本步骤: 1. 引入threadpool模块。 ...

    boost threadpool(修复内存泄露后的版本)

    修复后的Boost.Threadpool版本在保证并发性能的同时,提高了内存管理的健壮性,使得开发者可以更放心地使用线程池来处理大量并发任务,而无需担心内存泄漏问题。此外,修复版还可能优化了其他方面,如线程调度策略、...

    threadpool

    线程池(threadpool)是计算机程序中一种有效的多线程处理形式,它预先创建一组线程,待有任务需要执行时,从线程池中取出一个线程来执行任务,任务完成后,线程并不销毁,而是返回线程池等待下一次的任务分配。...

    ThreadPool 线程池管理单元

    ThreadPool 线程池管理单元 带调用例子

    C++11 ThreadPool:一个易于使用的C ++ 11线程池。-开源

    一个易于使用的C ++ 11线程池。 使用ThreadPool类对自由函数进行排队,并使用std :: for_each()和std :: transform()的并行版本。 可配置为仅用于标头或与库一起使用。 有许多用法示例。

    C# ThreadPool 多线程 代码示例

    `ThreadPool`管理线程的创建和销毁,优化系统资源的使用,尤其适合处理大量短生命周期的任务。本示例将探讨如何在C#中使用`ThreadPool`进行多线程编程。 在C#中,`ThreadPool`类提供了多种方法来调度工作项,其中`...

    Boost threadpool优先级实例

    在`BoostThread`这个文件中,可能包含了具体的示例代码,展示了如何使用Boost.Threadpool创建线程池、定义任务、设置优先级并进行调度。通过阅读和分析这些代码,开发者可以更好地理解如何在实际项目中应用Boost....

    ThreadPool

    总的来说,"ThreadPool"是一个关于多线程编程和任务调度的重要主题,尤其在Windows环境下,理解和掌握线程池的使用能帮助开发者编写出更加高效、稳定的并发程序。通过深入学习和实践,可以利用C++或者其他语言实现...

    python threadpool

    在本文中,我们将深入探讨`threadpool`的原理、使用方法以及其在多线程编程中的应用。 ### 一、线程池概念 线程池是一种线程使用模式,预先创建一组线程,当有任务需要执行时,从线程池中取出一个线程来执行任务,...

    threadPool的实现代码

    threadPool的实现代码

    threadpool.tar.gz

    在"threadpool.tar.gz"压缩包中,包含两个文件:threadpool.cc和threadpool.h,它们很可能是实现线程池的源代码文件。这里我们将详细讨论C++11引入的线程库以及如何在Linux/MacOS平台上利用这些新特性构建线程池。 ...

    ThreadPool-master.zip

    线程池是一种多线程处理形式,用于管理并发任务的...通过对ThreadPool-master项目的学习,你可以深入理解线程池的工作机制,以及如何在C++中高效地实现和使用线程池。这将有助于提升你在并发编程和系统优化方面的技能。

    VC++ThreadPool程序

    本篇文章将围绕“VC++ ThreadPool程序”进行详细讲解,旨在帮助读者理解和掌握如何在VC++环境中构建和使用线程池。 线程池是一种线程使用模式,它预先创建一组线程,等待任务到来时分配给这些线程执行,而不是每次...

    C# Thread、ThreadPool、Task测试

    1. 提交工作到线程池:使用`ThreadPool.QueueUserWorkItem`方法提交任务到线程池。 ```csharp ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod)); ``` 2. 使用线程池线程:线程池会自动选择一个空闲线程...

    ThreadPool.zip

    总之,ThreadPool.zip实例代码提供了丰富的多线程编程实践,通过学习和分析这些代码,我们可以掌握如何有效地使用线程池来提高程序性能,同时理解线程同步和资源管理的重要性。对于任何希望提升并发编程技能的开发者...

    Pythonpython threadpool python多线程 Python语言基础

    【Python】python threadpool python多线程 Python语言基础 文件清单 └── threadpool-1.2.7 ├── CHANGELOG.txt ├── doc │ ├── api │ │ ├── class-tree.html │ │ ├── epydoc.css │ │...

    C++11 线程池 ThreadPool

    线程池(ThreadPool)是一种管理线程资源的有效方式,它在现代并发编程中扮演着至关重要的角色。线程池允许程序预先创建一组线程,而不是每次需要时都创建新的线程,这样可以减少线程的创建和销毁开销,提高系统效率...

Global site tag (gtag.js) - Google Analytics