并行执行

$throttleLimit = 4
$SessionState =
[system.management.automation.runspaces.initialsessionstate]::CreateDefault()
$Pool
= [runspacefactory]::CreateRunspacePool(1, $throttleLimit, $SessionState,
$Host)
$Pool.Open()

$id = 3
$ScriptBlock = {

#此处参数顺序要注意前后,AddArgument的第一个参数会被传递给$id,AddArgument的第二个参数会被传递给$x,与AddArgument的顺序无关,只与param的顺序有关
param($id,$x)


Start-Sleep -Seconds 1
"Done processing ID $id"
"hello,
$x"
}

$threads = @()

$handles = for ($x = 1; $x -le 20; $x++)
{
$powershell =
[powershell]::Create().AddScript($ScriptBlock).AddArgument($id).addargument($x)

$powershell.RunspacePool = $Pool
$powershell.BeginInvoke()

$threads += $powershell
}

do {
$i = 0
$done = $true

foreach ($handle in $handles) {
if ($handle -ne $null) {
if
($handle.IsCompleted) {
$threads[$i].EndInvoke($handle)

$threads[$i].Dispose()
$handles[$i] = $null
} else {

$done = $false
}
}
$i++
}
if (-not $done) {
Start-Sleep -Milliseconds 500 }
} until ($done)

时间: 2024-10-12 14:26:45

并行执行的相关文章

消息队列_RabbitMQ-0004.深入RabbitMQ之分类告警/并行执行/RPC响应?

应用场景: 1. 通知,针对发送事件的描述,内容可以是消息的日志,也可以是真实的报告通知给另一个程序或者管理员. 说明: 首先选择交换机,如果选择fanout交换机,则需要为每种告警传输类型(邮件/微信/手机/短信)创建队列,但同时也带来坏处就是每个消息都会发送到所有队列,导致告警消息发生时,被报警消息淹没,如果选择topic交换机,则可为其创建四种严重级别告警info/warning/problem/citical,但如果使用fanout类型交换机消息会发送到所有这四个级别队列,如果使用dir

【问底】陈焕生:深入理解Oracle 的并行执行

摘要:Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. 在本文中,在一个简单的星型模型上,我会使用大量例子和sql m

python多进程并行执行和顺序执行的时间测试

#_*_coding:utf-8_*_ import time from  multiprocessing import Pool from threading import Thread def func1(fn):     time.sleep(1)     return fn * fn if __name__ == "__main__":     a = [1,2,3,4,5,6]     print "顺序执行的方式开始..."     s = time.t

Java使用Fork/Join框架来并行执行任务

现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机.多核处理器已被广泛应用.在未来,处理器的核心数将会发展的越来越多. 虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势. 为了充分利用多CPU.多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU处于“空闲”状态.为此,可以考虑把一个任务拆分成多个“小任务”,把多个"小任务"放到多个处理器核心上并行执

GNU Parallel: 并行执行Linux命令

今天在Stack Overflow上看到一个很有趣的问题, 问题的大意是: 需要用一个脚本处理一个文本文件, 但这个文本文件可能很大, 由于处理脚本的问题, 希望每次能够只处理该文本文件的若干行, 就像 xargs 一样, 而且不能使用split来分割文件, 也不允许生成临时文件. 如果允许使用临时文件的话, 那么用bash script并不难实现, 若不能使用临时文件, 那么可以使用GNU Parallel工具来实现. 实现的方法如下: cat giantfile.txt | parallel

testng多线程并行执行测试

并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以并行(多线程)的方式来执行测试.这就意味着基于TestNG测试组件的配置,多个线程可以被同时启动然后分别执行各自的测试方法.相对于传统的单线程执行测试的方式,这种多线程方式拥有很大的优势,主要是它可以减少测试运行时间,并且可以验证某段代码在多线程环境中运行的正确性. invocationCount----表示执行的次数 threadPoolSize-----表示

Oracle“并行执行”之二——并行执行类型

摘自<VLDB and Partitioning Guide> 并行执行主要有以下几种: 1)并行查询 2)并行DDL 3)并行DML 4)并行执行函数 5)其它类型并行 下面分别对其进行介绍,主要包括两方面:能否并行.确定DOP. 1.并行查询 你可以在SELECT语句中并行执行查询和子查询,也可以在DDL和DML语句中并行执行查询部分.你也可以并行查询外部表.并行包括两部分工作:确定是否并行.确定并行度(DOP).对于查询.DDL和DML,这两部分的确定方法各不相同.为了确定DOP,ORA

第12/24周 并行执行计划

在这一期的性能调优培训里,我想详细讲解下SQL Server里的并行执行计划(Parallel Execution Plans) .执行一个有并行执行计划的查询,意味着SQL Server从执行计划里进行必须的运算符需要使用多线程.首先我会介绍下并行执行计划里最常用的运算符,然后我们来分析下SQL Server是如何决定是否要使用并行执行计划. 并行运算符(Parallel Operators) 对于并行执行计划最常见的误解就是多线程只用于整个执行计划.这是错误的,因为SQL Server可以分

关于并行执行(parallel executing)的认识

Parallel Execution,主要应用与OLAP系统中提高执行效率.PX的执行机制是当发起一个并行操作时,创建一个进程如QC,协调并行服务器进程的信息传递,并行协调进程将需要操作的数据集按照并行执行数分成若干单元,并将数据单元分别分给并行服务器进程进行处理,处理完毕后,将结果集传递给并行协调进程,并行协调进程将结果集汇总反馈给用户. 并行服务器进程数量 Oracle启动是会根据参数文件中的parallel_min_servers参数创建进程数量,当并行服务器进程不足时,再创建新的并行服务

将MySQL去重操作优化到极致之三弹连发(二):多线程并行执行

上一篇已经将单条查重语句调整到最优,但该语句是以单线程方式执行.能否利用多处理器,让去重操作多线程并行执行,从而进一步提高速度呢?比如我的实验环境是4处理器,如果使用4个线程同时执行查重sql,理论上应该接近4倍的性能提升. 一.数据分片        我们生成测试数据时,created_time采用每条记录加一秒的方式,也就是最大和在最小的时间差为50万秒,而且数据均匀分布.因此先把数据平均分成4份. 1. 查询出4份数据的created_time边界值 select date_add('20