社区
C#
帖子详情
高分求助!寻求多线程选手,来实现我这个简单功能。我多加分撒~
mulong
2008-07-01 04:38:56
DataTable dt ;
for (i = 0; i < rowEnd; i++)
{
DataRow dr = dt.Rows[i];
P( dr ) ;
}
文档要求每1s内调用P方法控制在15次左右。
但目前P方法是通过网络调用远程机的接口,处理一个dr并获取返回值的过程 就耗时1s左右。
如何解决速率问题?用多线程么?请给出具体实现编码。
时间有限,没空多看书了,我多加分就是了!谢谢大家。
...全文
168
11
打赏
收藏
高分求助!寻求多线程选手,来实现我这个简单功能。我多加分撒~
DataTable dt ; for (i = 0; i < rowEnd; i++) { DataRow dr = dt.Rows[i]; P( dr ) ; } 文档要求每1s内调用P方法控制在15次左右。 但目前P方法是通过网络调用远程机的接口,处理一个dr并获取返回值的过程 就耗时1s左右。 如何解决速率问题?用多线程么?请给出具体实现编码。 时间有限,没空多看书了,我多加分就是了!谢谢大家。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
waikey
2008-07-02
打赏
举报
回复
thread th = new thread(new threadstart(threadMethod));
th.start()
放到你要调用的方法里面
记住添加引用
using System.Threading
waikey
2008-07-02
打赏
举报
回复
thread th = new thread(new threadstart(threadMethod));
th.start()
private void threadMethod()
{
DataTable dt ;
for (i = 0; i < rowEnd; i++)
{
DataRow dr = dt.Rows[i];
invoke(new delegate(delegateInvodeMethod),new object[]{invokeMethod});
}
}
private delegate void delegateInvokeMethod(datarow dr)
private void invokeMethod(dataRow dr)
{
P( dr ) ;
//doSomeThing...
}
diteric
2008-07-02
打赏
举报
回复
这个远程机的接口是web services么,如果是可以看看能不能换个开发方式,例如CORBA
如果远程接口不能变,试试能不能调整DataTable的值,发送request的值也直接影响response的速度
多线程应该不好用吧,增加带宽可以。。暂时就能想到这些
mulong
2008-07-02
打赏
举报
回复
今天没人么?请继续发言讨论
sportboy2008
2008-07-01
打赏
举报
回复
顶一下!
mulong
2008-07-01
打赏
举报
回复
[Quote=引用 4 楼 yatobiaf 的回复:]
你要搞清楚P为什么不能每秒调用15次的瓶颈在哪里。我觉得问题在于网络,还有远程服务器对P操作的响应。如果是上述问题,你在客户端用多线程也没用。你在客户端唯一能做的事情是,通过多线程,当上个P还没有返回的时候就开始执行下个P,是这样的嘛?
[/Quote]
对。网络、操作响应都是耗时的主要原因。网络原因应该是耗时大头。
“在客户端,当上个P还没有返回的时候就开始执行下个P”我就是想要这个。
mulong
2008-07-01
打赏
举报
回复
多谢greystar
网络通过dr传参的确是慢,已改
P方法没法改进。P方法是调用远程机的函数接口。但是P方法貌似能并发执行,比如两台PC都连续调用P方法能正常执行任务,所以才想起来用多线程。
真不能解决么?继续求助。
yatobiaf
2008-07-01
打赏
举报
回复
你要搞清楚P为什么不能每秒调用15次的瓶颈在哪里。我觉得问题在于网络,还有远程服务器对P操作的响应。如果是上述问题,你在客户端用多线程也没用。你在客户端唯一能做的事情是,通过多线程,当上个P还没有返回的时候就开始执行下个P,是这样的嘛?
baihe_591
2008-07-01
打赏
举报
回复
不懂,帮顶.
greystar
2008-07-01
打赏
举报
回复
1s内调用P方法控制在15次,那采用定时器,不过定时器也不是一定准确的.
如果p方法不改进,你是没办法达到你的要求的.就是多线程也解决不了你的问题
greystar
2008-07-01
打赏
举报
回复
P( dr ) ; 如果是远程调用的话,最好不要定义成datarow形式,直接就是string,int这些.
Java
多线程
的使用
多线程
就是同一时间做好多事情,比如有一个词叫:一边一边,一边吃饭一边看电视......等等,这样在程序上有什么好处呢?提高了程序的工作效率,让程序
实现
的更多的东西:比如多人游戏,比如订单服务,这个如果使用单线程一个一个处理那就会花费很长时间,
多线程
处理就相当于多加了几条生产线来完成任务.....
多线程
是指在一个程序中同时运行多个独立的线程,每个线程执行相对独立的任务。Java是一种支持
多线程
编程的语言,它通过类和接口提供了
多线程
的支持。
Android之
多线程
实现
方式及并发与同步
前言:说到
多线程
,就不得不先说它和进程的关系,这里先
简单
解释一下,当一个app程序启动时系统默认有一个进程和主线程,在程序运行中想要异步操作,就会创建不止一个子线程即
多线程
。用
多线程
只有一个目的,那就是更好的利用cpu的资源,因为所有的
多线程
代码都可以用单线程来
实现
。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来
实现
:比如最常见的“生产者,消费者模型”。 一、
多线程
实现
方式:(三种) 1、继承Thread类,重写r
Windows
多线程
编程 C语言
下面的代码,目的是将number加到MAX_NUMBER即可,由于是两个线程并行,总会多加一个1(若是10个线程并行,则会多加9,原因同理,当某一个线程将number的值加到MAX_NUMBER之后,其他9个线程被阻塞,但是都有写权限,又在写之前并没有number值的范围判断,导致每个线程都再次对number加1)。上述代码采用的是临界区句柄进行互斥判断,在使用信号量进行互斥控制时,发现意图是使用
多线程
,但实际上只用首先被创建的线程在进行工作,其他线程均为进行工作,待定。写之前添加范围判断语句。...
优雅设计封装基于Okhttp3的网络框架(三):
多线程
下载
功能
核心
实现
及 线程池、队列机制、终止线程解析
通过前两篇博文的学习,已经带领大家学习了HTTP协议与Okhttp相关内容的学习,并且在上篇博文已经完成了初始编码工作:定义好了网络请求接口DownloadCallback 和网络请求类HttpManager,可以完成同步、异步请求操作,而接下来将编码
实现
多线程
下载
功能
的核心代码,通过多个线程之间的管理和调度来处理下载任务,最后再引入队列机制来完善
功能
。此篇文章将学习:
多线程
核心
功能
编写,线程池原理,队列机制
IntelliJ IDEA 记学习笔《
多线程
调试》
IntelliJ IDEA 记学习笔《
多线程
调试》测试代码为断点添加条件Debug 运行参考资料 在
多线程
情况下,各个线程进入断点完全是看心情的。 怎么才能好好的专注一个线程,方便调试呢? IntelliJ IDEA 提供的解决这群,非常
简单
。(其实就是我们平时用的条件断点,再多加个线程选项) 测试代码 package com.example.springbootdemo; class MyRunnable implements Runnable { //
实现
Runnable接口,作为线程的
实现
类
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章