社区
C++ 语言
帖子详情
关于多线程执行同一函数
y_h1733
2018-03-14 10:35:22
我想实现的功能是同步执行同一函数。我的参数是一个链表。有20个元素,我想使用2个线程同步进行。效率提高这样子
...全文
859
10
打赏
收藏
关于多线程执行同一函数
我想实现的功能是同步执行同一函数。我的参数是一个链表。有20个元素,我想使用2个线程同步进行。效率提高这样子
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
z416575462
2018-03-17
打赏
举报
回复
如果处理过程只对链表中的1个节点或只读不改变列表的话,可以修改成多线程的.可以在处理函数中设置输出参数为指向链表节点的指针和要处理的节点数量.这样调用者只要像第一个线程传入节点0的地址和数字10,向第二个线程传入节点10的地址和数字10.而处理函数则从传入的节点指针那开始处理,一共处理 "传入的节点 数量" 个节点,,处理完毕便退出,即可.
plume
2018-03-16
打赏
举报
回复
C++11 local_thread变量 。
明月2
2018-03-16
打赏
举报
回复
不是用多线程就能提升效率,一个链表用个单线程处理,另外用个线程来准备链表数据这样比较合理。
EL-PAAS微服务
2018-03-15
打赏
举报
回复
好的设计方法,把链表封装一下,加锁,使其是线程安全的。 线程运行的处理函数就可以不用加锁了,从链表中取出数据,然后执行对应的逻辑处理。
@风轻云淡_
2018-03-15
打赏
举报
回复
链表是大概和数据库一样,需要时刻保证数据的有效性,也就是说你在添加或者删除的时候,别的线程或者用户是不能同时操作的,也就是需要加锁,不然指定出问题。你现在用来两个线程来同时操作链表,只是访问的话是没问题的,可以增加效率,但是进行其他操作的时候同一时间只可以有一个线程操作这个链表,所以几个线程是一样的,看你自己的需求了。
自信男孩
2018-03-15
打赏
举报
回复
问题是什么?线程体一样,并且线程使用共同的资源。需要做好互斥,加锁即可。
赵4老师
2018-03-14
打赏
举报
回复
《Windows核心编程》
赵4老师
2018-03-14
打赏
举报
回复
无profiler不要谈效率!!尤其在这个云计算、虚拟机、模拟器、CUDA、多核 、多级cache、指令流水线、多种存储介质、……满天飞的时代!
y_h1733
2018-03-14
打赏
举报
回复
语言是C++
鄢老
2018-03-14
打赏
举报
回复
链表是共享资源,需要在操作链表的地方使用互斥或临界区域(链表操作包括,增删改查), 如果想简单就直接在函数开头部分进行同步(互斥或临界区域,事件,信号灯都可以),函数复杂的花,效率会比较低
JAVA
多线程
精讲下
本课程是《零基础学Java》系列课程中的
多线程
相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解Java
多线程
的原理及实现运行机制,深刻学习
多线程
的生命周期、调度、控制等内容。
多线程
精讲下课程内容涵盖如下:l 线程的同步(线程安全问题)l 线程的死锁l 线程间通信l 线程组l 线程池l
多线程
的第三种实现方案l 匿名内部类方式使用
多线程
l 定时器的使用l
多线程
面试题
多线程
执行
同一
函数
出现
执行
时间也不一样的现象
问题: 双线程乃至4线程
执行
比较耗时的操作时,线程同时开始,线程结束时间不一样。表现现象如下: 1、
执行
for循环。for循环
执行
次数越少,
多线程
结束的时间差越小。同时开始的
多线程
执行
同循环次数的单层for循环耗时比双层for循环结束时间差小。 2、
执行
图像处理算子时,图像像素越小,
执行
图像处理算子越快。通一图像像素时,
执行
简单的图像算子,
多线程
能同时开始与结束;
多线程
执行
复杂的图像算子能同时开始,结束时间有时间差。 尝试解决方案: 双线程测试图像处理算子XxwImgOp。通过比较线程的开始...
c#
多线程
执行
一个
函数
(1)感谢声明 首先感谢这篇博客的博主写出了这么好的文章:http://www.cnblogs.com/yunfeifei/p/3993401.html 其次感谢一直那位大神,给我指点迷津,虽然不知道你全名,姑且就叫你杨工吧! (2)记录备忘 由于刚刚入门这个
多线程
,所以此博客仅仅用于记录备忘,同时也给和我一样的初学者一个入门通道 我先来讲讲我目前理解的
多线程
,可能不对,也请大家指正
Python对
同一
函数
不同参数实现
多线程
操作
此方法用于爬虫效果极优 import threading import time def testa(n): while True: time.sleep(1) print(n) #先隔出一秒打印出a,再过一秒打出b ts = [] for i in range(5): exec('t{0} = threading.Thread(target=testa,args=(i,))...
多线程
调用
同一
静态方法会有
多线程
问题吗
多线程
调用
同一
静态方法会有
多线程
问题吗项目中有类的public static方法有可能被
多线程
同时调用,所以有这个疑问,大致网上查了下自己没有试验过。 只要在静态
函数
中没有处理
多线程
共享数据,就不存在着
多线程
访问
同一
个静态方法会出现资源冲突的问题,静态方法是否引起线程安全问题主要看该静态方法是否对全局变量(静态变量static member)进行修改操作
C++ 语言
64,662
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章