有什么更好的方法实现批处理的多线程有几种实现方法

[已解决]有什么更好的方法实现批处理的多线程 - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子87&积分499&技术0 &捐助0 &注册时间&
[已解决]有什么更好的方法实现批处理的多线程
想做个检查局域网都有哪些机器开着的批处理
先做了个这样的@echo off
for /l %%a in (2,1,254) do (
echo 192.168.0.%%a
ping 192.168.0.%%a /n 1 |find &TTL&&&(echo 192.168.0.%%a &&result.dat)
)
goto :eof复制代码发现速度太慢了
后来又改成这样的@echo off
for /l %%a in (2,1,254) do (
echo 192.168.0.%%a
ping 127.0.0.1 -n 1
start /min cmd /c &ping 192.168.0.%%a /n 1 |find &TTL&&&(echo 192.168.0.%%a &&d:\result.txt)&
)
goto :eof复制代码使用多线程的& &发现这样开的窗口太多了& &加个 ping 127.0.0.1 -n 1是因为怕开的太快机器响应不过来
但还是觉得进程太多了& &
有没有其他更好的办法实现这个功能
在网上找了下&&没发现其他批处理的实现多线程的方法
再附加个问题:
批处理对双引号是怎么判断的,比如这句
start /min cmd /c &ping 192.168.0.%%a /n 1 |find &TTL&&&(echo 192.168.0.%%a &&d:\result.txt)&
这句可以正确把引号配对运行& &但为什么程序就不会认为是前面一对引号,后面一对引号& &为什么可以正确的认识是两对引号嵌套呢
start /min cmd /c &ping 192.168.0.%%a /n 1 |find &TTL&&&(echo 192.168.0.%%a &&d:\result.txt)&
start /min cmd /c &ping 192.168.0.%%a /n 1 |find &TTL&&&(echo 192.168.0.%%a &&d:\result.txt)&
[ 本帖最后由 stuqx 于
16:31 编辑 ]
感谢主动给标题标注[已解决]字样PB + 2
帖子593&积分4452&技术1 &捐助0 &注册时间&
回复 1楼 的帖子
试试这个:
@echo off
set /p network=请输入网络号(例如:192.168.1):
for /l %%i in (1 1 254) do (
& &&&start /b ping %network%.%%i&nul&echo 连接:%network%.%%i
)
arp -a|find /v &00-00-00-00-00-00&
pause复制代码
谢谢!PB + 3
帖子87&积分499&技术0 &捐助0 &注册时间&
呵呵& &谢谢了& &没注意到/b这个参数& &&&
呵呵&&又学了一招
帖子87&积分499&技术0 &捐助0 &注册时间&
那第二个问题能不能给我介绍下大概呢
帖子1069&积分12114&技术35 &捐助0 &注册时间&
为什么程序就不会认为是前面一对引号,后面一对引号
预处理时本来就是这样认为的。
至于预处理后就是程序自己来处理了(CMD)。CMD处理引号的方式见cmd /?
看下面的例子:@echo off
echo a^&b&1.txt
cmd /c &type 1.txt|find &a&&& echo yes&
cmd /c &type 1.txt|find &&&&& echo yes&
pause复制代码
谢谢!PB + 2
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!
帖子87&积分499&技术0 &捐助0 &注册时间&
如果指定了 /C 或 /K,命令行开关后的命令行其余部分将作为命令行处
理;在这种情况下,会使用下列逻辑处理引号字符(&):
& & 1.&&如果符合下列所有条件,那么在命令行上的引号字符将被
& && &&&保留:
& && &&&- 不带 /S 命令行开关
& && &&&- 整整两个引号字符
& && &&&- 在两个引号字符之间没有特殊字符,特殊字符为下列中的
& && && & 一个: &&()@^|
& && &&&- 在两个引号字符之间有至少一个空白字符
& && &&&- 在两个引号字符之间有至少一个可执行文件的名称。
& & 2.&&否则,老办法是,看第一个字符是否是一个引号字符,如果
& && &&&是,舍去开头的字符并删除命令行上的最后一个引号字符,
& && &&&保留最后一个引号字符之后的文字。复制代码看到了& &确实如此
帖子87&积分499&技术0 &捐助0 &注册时间&
原帖由 keen 于
14:43 发表
试试这个:
set /p network=请输入网络号(例如:192.168.1):
for /l %%i in (1 1 254) do (
& &&&start /b ping %network%.%%i&nul&echo 连接:%network%.%%i
arp -a|find /v &00-00-00-00-00-00& ...
刚才试了下你这个&&只是这个不是多线程& &太慢了& &254个地址要老久才能测完
帖子87&积分499&技术0 &捐助0 &注册时间&
还有没有其他有关批处理多线程的好代码呢
帖子1069&积分12114&技术35 &捐助0 &注册时间&
批处理本来就不支持多线程。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!
帖子87&积分499&技术0 &捐助0 &注册时间&
那算了& &结帖了
[通过 QQ、MSN 分享给朋友]他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)为保证问答的时效性,该问题已关闭回答。
多线程是在同一个进程空间中,多个线程同时工作,分别做不同的事情。批处理,是有一系列的工作排列起来顺序执行,可以是不想干的工作。
环境配置没弄
右键我的电脑--高级--环境变量
在系统变量里新建2条
1.变量名Java_HOME,变量值为安装路径(比如C:\Java\jdk1.6.0_13...
答: 目前世界上最具代表性的目录或分类搜索引擎是雅虎网 站。分类式搜索引擎的优点是将信息分门归类,用户能系统完整、清晰方便地查找到某一大类的信息,例如艺术与人 类、休...
答: 比如常见的网吧电脑用的就是无盘网络技术。
优点:资源共享,节省资金。
缺点:访问速度慢,容易中毒!
答: 同电脑故障、网线故障和路由器故障都有可能。
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区&&[&& 原创&&]&& 作者:
  基准性能测试是一个参考项,实际运行效率的参考价值则更高一些。实际运行效率测试我们采用两组测试,第一组是的性能测试,第二组是数百张照片批处理,这两组的测试都是定量测试并记录完成时间。WINRAR性能测试  WINRAR性能测试是WINRAR应用自带的测试工具,测试方式是打开多线程开关处理1000MB内容,最后记录所用时间为测试结果。WINRAR对于办公用户来说是十分常用的,较为常用,和效率是用户关心的,新老平台在这款应用上的运行效率差距有多少,如下图:WINRAR性能测试结果对比  从WINRAR性能测试结果中我们可以清晰看到新平台的处理速度要优于老平台,在处理的时间对比中同样是将近10%效率的提升,别看只有10%这点数字,文件越多、处理时间越长,之间的差距也就越大,对于追求高效的商务人士来说10%的时间足以干好多事情。图像批处理测试  第二组测试是批处理数百张图片,测试方式是选用216张单反直出JPG照片进行1000宽尺寸处理加上转换PNG格式的批处理,处理结束时的所用时间是测试结果。图片批处理对于商务人士也是常用的操作,高效率能够节省更多的时间,测试结果对比如下图:图像批处理时间对比  从图像批处理时间对比结果中可以看到,新平台相比老平台的处理效率提升也是将近20%,这要比文件压缩时的提升更大,20%的效率提升也就是节省了20%的时间,打个比方就是原先需要5小时才能处理完成的图像如今仅需要4小时,提前1小时完成;而多出的1小时时间可以用来做很多其他工作项目。测试小结:  全新的、/x2、联想YOGA&4&Pro是配备新平台硬件的产品,这些轻薄型相比上一代产品有着较高的性能提升,能够更好的应对商务办公需求。从多线程的测试对比结果中我们就能清晰看到新老平台的差距,也就是新平台的提升明显。像前面提到的这些轻薄型笔记本的将来大有前途,用户不会再为轻薄型笔记本或的性能表现而感到担忧,相信这类轻薄化的会有更好的市场表现;尤其是商务办公人士,对于轻薄型笔记本的需求也会更加强烈。
提示:支持键盘“← →”键翻页
产品定位 屏幕尺寸
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商
4¥48995¥69886¥56997¥49998¥73999¥1258810¥5299在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
最近工作上遇到这么一个问题:需要在指定时间,在后台起5个线程执行批量任务。对应的需要有一定的监控机制来观察这5个线程的运行情况。如果该5个线程在指定任务未完成之前异常退出。需要重新起一个线程来顶替他。目前我的方案是利用@schedule在指定时间起五个线程执行任务。并记录下这五个线程的threadid至数据库中保存。另外启动一个监控线程,定时去取这五个现成的threadid,遍历线程组找到该线程并观察线程状态。
那么问题来了。请问各位大神!有没有一套比较成熟的方案可以解决上述问题?或者说有没有什么比较好的监控线程的方式?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
为什么要监控线程?有异常的时候线程不退出不就好了么?比如这样:
while(tasks.getTaskLeft().size()&0) {
Task task = tasks.getNextTask();
processTask(task);
} catch (Exception e) {
task.setError(true);
log.error("Fail to process task", e);
task.setProcessed(true);
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。}

我要回帖

更多关于 java多线程分批处理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信