免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5135 | 回复: 20
打印 上一主题 下一主题

请教一个希望多个线程同时运行的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-16 20:03 |只看该作者 |倒序浏览
我在做一个数据库的测试,希望可以在同一时刻开多个线程执行一段SQL,测试数据库的响应情况,
我现在是这样启动任务线程的
for (  i = 0 ;i < t.length; i++)
    {
       t[i].start();
    }  

但是输出的结果好像是顺序执行的,查看了论坛的帖子,说windows下这样是有问题的,请教大家有没有办法实现我希望的多个线程同一时刻去执行sql访问数据库? java不是很熟悉,请大家多指导,谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-01-16 21:35 |只看该作者
在线程内部实现的时候加上个定时器,到指定时间执行不知道行不行。
不过总感觉在一台机器上不可能真正做到同时执行吧。

论坛徽章:
0
3 [报告]
发表于 2007-01-17 00:05 |只看该作者
线程调度机制是没谱的,在保证你程序逻辑没问题的情况下,多试几遍应该会看到不同的结果

你是每个线程通过一个connection查询还是每个线程都创建一个connection查询?还是连接池啊

论坛徽章:
0
4 [报告]
发表于 2007-01-17 00:08 |只看该作者
原帖由 艾斯尼勒 于 2007-1-17 00:05 发表
线程调度机制是没谱的,在保证你程序逻辑没问题的情况下,多试几遍应该会看到不同的结果

你是每个线程通过一个connection查询还是每个线程都创建一个connection查询?还是连接池啊


那意思是没办法在某一时刻同时执行了?
主要跑一个c/s的应用,所以每个线程都有自己的connection,没有使用对象池的方式。

论坛徽章:
0
5 [报告]
发表于 2007-01-17 00:10 |只看该作者
原帖由 dongbear 于 2007-1-16 21:35 发表
在线程内部实现的时候加上个定时器,到指定时间执行不知道行不行。
不过总感觉在一台机器上不可能真正做到同时执行吧。


加定时器也比较麻烦吧

论坛徽章:
0
6 [报告]
发表于 2007-01-17 00:25 |只看该作者
厄。。单CPU上是无法同时执行两个线程的,宏观上看是并行的,其实微观上看某一时间片只有一个线程在运行,至于现在的双核说不清,单核肯定无法同时执行

还有连接数据操作同一张表?好像还跟数据库的事务处理和数据库表锁什么什么的有关系

论坛徽章:
0
7 [报告]
发表于 2007-01-17 08:23 |只看该作者
原帖由 艾斯尼勒 于 2007-1-17 00:25 发表
厄。。单CPU上是无法同时执行两个线程的,宏观上看是并行的,其实微观上看某一时间片只有一个线程在运行,至于现在的双核说不清,单核肯定无法同时执行

还有连接数据操作同一张表?好像还跟数据库的事务处理和 ...


但是loadrunner之类的软件不是可以单机模拟多用户吗?应该还是可以实现的吧?

数据库层面,现在是测试select的压力,暂时不会有事务和锁的问题。

论坛徽章:
0
8 [报告]
发表于 2007-01-17 08:48 |只看该作者
在单cpu的情况下,如果你执行的sql语句很小的话,说不定某一个线程的时间片还没用完,sql就执行完了,所以看起来是顺序执行的。
在多cpu的情况下也是不一定的,所以线程这个东西只要保证它的逻辑正确就行了,不要管它的执行顺序。
如果想要测试并发性,多开一些线程,执行一些比较耗时的操作

论坛徽章:
0
9 [报告]
发表于 2007-01-17 10:12 |只看该作者
题外话: Apache.org 好像有个 JMeter 也可以对 http、ftp、数据库 做压力测试……



[url]http://jakarta.apache.org/jmeter/index.html


[/url]

What does it do?
Apache JMeter features include:

Can load and performance test HTTP and FTP servers as well as arbitrary database queries (via JDBC)
Complete portability and 100% Java purity .
Full Swing and lightweight component support (precompiled JAR uses packages javax.swing.* ).
Full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by seperate thread groups.
Careful GUI design allows faster operation and more precise timings.
Caching and offline analysis/replaying of test results.
Highly Extensible:
Pluggable Samplers allow unlimited testing capabilities.
Several load statistics may be choosen with pluggable timers .
Data analysis and visualization plugins allow great extendibility as well as personalization.
Functions (which include JavaScript) can be used to provide dynamic input to a test
Scriptable Samplers (BeanShell is supported in version 1.9.2 and above)

论坛徽章:
0
10 [报告]
发表于 2007-01-17 10:39 |只看该作者
原帖由 lovetide 于 2007-1-17 10:12 发表
题外话: Apache.org 好像有个 JMeter 也可以对 http、ftp、数据库 做压力测试……



[url]http://jakarta.apache.org/jmeter/index.html

[img]ht ...


多谢了,我先看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP