免费注册 查看新帖 |

Chinaunix

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

多线程程序消耗cpu非常多,17个cpu,不知道怎么调整? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-23 08:13 |只看该作者 |倒序浏览
我在AIX环境下

用 truss -p  进程id

hread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
                                                = 1
close(10)                                       = 0
                                                = 0
                                                = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
                                                = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
thread_unlock(0x00000001116DCCF               = 1
                                                = 0
                                                = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
thread_unlock(0x00000001116DCCF               = 1
thread_unlock(0x00000001116DCCF               = 0
                                                = 1
                                                = 0
                                                = 1
thread_unlock(0x00000001116DCCF               = 1
thread_unlock(0x00000001116DCCF               = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
thread_unlock(0x00000001116DCCF               = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_unlock(0x00000001116DCCF               = 0
                                                = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
                                                = 0
thread_unlock(0x00000001116DCCF               = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
                                                = 0
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 1
thread_waitlock_(0x00000001116DCCF8, 1, 0x0000000000000000) = 0
                                                = 0
                                                = 0


------------------------------

If (任务数<1 )
        返回 -1;

If(线程体为空)
        返回 -1;

if(设定线程属性失败)
        返回 -1;

If(设定线程栈大小)
{
        清除线程属性;
        返回-1;
}

正常启动线程;

If(分配入口地址内存失败)
{
        清除线程属性;
        返回-1;
}

For(小于线程数)
{
        If(初始化线程互斥锁)
        {
                错误标志 1;
                Break;
}
        If(初始化线程条件变量)
        {
                错误标志 2;
                Break;
}       
        启动多线程;
}

If(出错  = 1)
{
        For(小于线程数)
清除线程属性;
}

If(出错  = 2)
{
线程取消
        For(小于线程数)
清除线程属性;
}

清除线程属性;

        返回 0

论坛徽章:
0
2 [报告]
发表于 2008-09-23 09:04 |只看该作者
贴了一堆没用的

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
3 [报告]
发表于 2008-09-23 09:28 |只看该作者
这个调度是由内核控制的,你只能设置线程的策略和优先级,但设置这些意味着同时存在风险

论坛徽章:
0
4 [报告]
发表于 2008-09-23 09:31 |只看该作者
多线程一个很重要的原因不就是为了尽可能的使用cpu吗?

论坛徽章:
0
5 [报告]
发表于 2008-09-23 12:44 |只看该作者
lz 贴的信息太少了,包括CPU的使用情况也没有看到
这样只能乱猜.

论坛徽章:
0
6 [报告]
发表于 2008-09-24 12:38 |只看该作者
CPU真多啊!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP