a****n 发帖数: 26 | 1 请问 如何准备这样的多线程问题 应该看什么资料。
thanks |
|
i*********n 发帖数: 58 | 2 哪位高人对C++多线程熟的?有一段code想请教一下,能先私信吗?解决后定贴出来供
大家参考。跪谢。 |
|
w*r 发帖数: 72 | 3 这不是典型的producer consumer 问题吗,你把message放到queue 里,子线程即使忙
,message 也不会丢 |
|
h*****e 发帖数: 14 | 4
persistent
对, 这题就是靠多线程的系统设计, 我倒是没想用多台server。
用cache的话, 怎么实现呢 |
|
x*****0 发帖数: 452 | 5 谢谢回复。请问可以这么说吗?
在Te时间之前,可以有很多线程同时执行register? |
|
k***g 发帖数: 166 | 6 又想到一个办法。还是把数组分成8等份,用8个线程同时做,和第一种方法的区别是它
们把数据放到自己的小桶里面。都完成之后,再把这些小桶连接起来。
这个要用C++实现,传进来的是一个vector。还没想好桶用什么数据结构
如果也用vector或者list,感觉会慢,因为要在堆上分配大量的内存才行 |
|
h*******e 发帖数: 1377 | 7 为啥要lock 数字入哪个 bucket 不会错啊, 可能出错的是入bucket 的顺序, 可是那
个重要吗, 线程本来就不能guarentee顺序啊。 |
|
|
a*******o 发帖数: 129 | 9 为啥要lock,读操作不需要锁,而且每个数只能归类到一个bucket,怎么都用不上锁呀。
如果数组很长,应该可以把它分成很多块,9个线程work一个块,那样就会更快了。
这样理解对吗? |
|
|
g*******d 发帖数: 495 | 11 之前有两次面试都被问到多线程如何加锁保证thread-safe。但是这块我不是特别的熟
悉,求问有没有什么材料是帮助温习一下这块的?
多谢了 |
|
l********6 发帖数: 129 | 12 art of multiprocessor programming 话说楼主面什么公司会问这个 楼主是没这方面
的经验么 为什么还要问?
[在 gamespeed (gamespeed) 的大作中提到:]
:之前有两次面试都被问到多线程如何加锁保证thread-safe。但是这块我不是特别的熟
:悉,求问有没有什么材料是帮助温习一下这块的?
:........... |
|
g*******e 发帖数: 140 | 13 能不能具体给讲讲,都被问了些什么多线程问题啊?我们后人也好受益一下 |
|
D***0 发帖数: 138 | 14 reader writer lock也是要lock在那个key上吧。这里一个问题是key是不是应该用
string,如果要是用一个新的class Key,那每次进来都要new一个新的Key的object,
然后lock在这个object,所以没起到作用,在多线程的情况下。不知道我想的对不对。 |
|
D***0 发帖数: 138 | 15 关键是希望两个同时的访问同一个key的线程,其中一个去取数据,另外一个不用去取
,直接能从cache里拿另外一个取出来的结果 |
|
|
D***0 发帖数: 138 | 17 想知道用reader writer lock的话怎么lock,可以保证不同key访问互不干扰,相同key
访问的话,如果miss,则只有一个线程去取数据,更新cache
requires |
|
h*****y 发帖数: 218 | 18 比之前的螺旋打印多了两个条件,给一个矩阵,给一个点的位置,i,j,从这个点开始
,螺旋打印这个矩
阵,重点是怎么多线程的进行打印? |
|
l********e 发帖数: 103 | 19 这里没有数据库
就是 让我写个 用于多线程的hash table |
|
T*****g 发帖数: 1306 | 20 哥们你做过synchronization相关的工作么?你知道你一个bucket有100个element,多
线程同时写在mutex上要等多久么?不过你提的这个throughput可能用mutex也能达到,
只能说你是没见过高性能的salable hashtable
不要误导人了,谁告诉你要copy一整条bucket来做copy on write?(有人提到RCU了,
RCU就可以做)。RCU的难点只在于resize的时候不好处理,不过已经有人把这个问题解
决了。
如, |
|
发帖数: 1 | 21 我一直强调的是绝对不可以在hashtable的设计(尤其在面试的时候)用copy-on-write,
一定要用lock。
第一点:最基本的常识,只能有一个thread来写,比如hashtable的值用作counter。用
copy-on-write,立马废掉。
第二点: 更进一步的synchronization,是要保证global ordering。比如狗家股票real
time streaming, 绝对不可以11:11:11.002的报价先写入,然后11:11:11.000的报价
后写入。这就有不少的实现方法。这个已经超出了hashtable面试的范围,但是如果你
想exceed expectation,mention this.
很多刚毕业的菜鸟喜欢在面试的时候胡吹一些"advanced technology"以达到shock-and
-owe的效果,use it wisely。比如下面这个就非常的un-wise:
“你知道你一个bucket有100个element,多线程同时写在mutex上要等多久么?不过你
提的这个throughput可能用mutex也能达到”
听着都能让... 阅读全帖 |
|
H**********5 发帖数: 2012 | 22 好帖,报上应该多些这种帖子。
多线程是必考题。 |
|
发帖数: 1 | 23 下面是单线程,而且图是adjacency list
public class Solution {
//5763 ms, method: bfs, 时间O(N + E),空间O(N)。
public List> connectedSet(ArrayList
nodes) {
List> res = new ArrayList<>();
List path = new ArrayList<>();
Set visited = new HashSet<>();
for (UndirectedGraphNode node : nodes) {
if (!visited.contains(node)) {
path.clear();
Queue阅读全帖 |
|
l******a 发帖数: 1478 | 24 转给妈妈们验证一下~
孩子哭闹的时候就在边上打开电视,再打开洗衣机,然后拍小孩的背,一会儿小孩子就
睡着了。理论依据是小孩子最多同时关注2件事情,如果有三件事情需要同时关注,他
就只能睡觉了…结论:所有小孩都是单核处理器,一旦多线程,就自动挂起… 挂起...
挂起... |
|
|
z****n 发帖数: 3189 | 26 【 以下文字转载自 Hardware 讨论区 】
发信人: zuihan (被MM爆仓的傻牛), 信区: Hardware
标 题: 牙膏厂哭晕在厕所:苏妈台北发布32核线程撕裂者
发信站: BBS 未名空间站 (Wed Jun 6 11:57:33 2018, 美东) |
|
z****n 发帖数: 3189 | 27 好贵,要1500刀,比股票贵多了。。
"基于和二代锐龙相同的12nm工艺、Zen+架构,32核心64线程,二级缓存16MB,三级缓
存64MB(合计80MB),基准频率仍是3.4GHz,加速频率仍是4.0GHz,还可以借助XFR2等加
速技术进一步在单核时提高到4.2GHz,而热设计功耗也升至250W" |
|
s***y 发帖数: 2607 | 28 【 以下文字转载自 Apple 讨论区 】
发信人: Neoly1983 (Neo_ly1983), 信区: Apple
标 题: 提高Lion中Safari的性能:关闭多线程窗口功能
发信站: BBS 未名空间站 (Wed Sep 21 15:29:15 2011, 美东)
Lion中的safari和以前相比有一个奇怪的现象:如果开了很多tab的话,切换的时候会
发现他们白掉了,要重新刷新才行。这对喜欢开很多个tab的童鞋很不方便,因为不能
快速切换,每次要重新加载。
其实原因是Lion中的Safari增加了一个feature:Multi-Process windows. (详细情况
有时间的话可以读下面的文章全文)
关闭这个功能的方法:
1.Quit Safari, then launch the Terminal (located in /Applications/Utilities/
) and enter the following command:
defaults write com.apple.Safari IncludeInternalDebugMenu 1
2. ... 阅读全帖 |
|
d*********e 发帖数: 1918 | 29 很多WSN也一样爱多线程。还特爱撒谎,那谎撒得低级的可笑,谁还看不出来?还指望
女的对你是单线,怎么可能呢?backup,都是互相的backup,谁也别怨谁 |
|
P*****g 发帖数: 2639 | 30 无论男生女生,多线程都不可能找到真正爱自己的人,因为作为backup的一方是可以感
受到的。谁也别以为别人傻。 |
|
|
z*********n 发帖数: 94654 | 32 不过有个硬伤啊,既然用memcached,开来是个unix类的线程
这种县城的id没有x这种十六进制符号啊,就是普通十进制的普通integer啊 |
|
l*****o 发帖数: 19235 | 33 老三你这样姑娘会不敢靠近的。看人家河马,“俺们都是上帝的线程”,多文艺 |
|
|
|
c*********r 发帖数: 7685 | 36 还以为就我以为多线程不好呢,看来不少人持同样观点。 |
|
|
|
c*********r 发帖数: 7685 | 39 俺是对有人认为多线程有理,说持不同意见的反而有问题而不解。于是看看是俺OUT了
,还是那人有问题。 |
|
|
g*********9 发帖数: 2350 | 41 百合,你这个发展是什麽意思
美国人要是没有commit的话是会到处date的,这是正常的
如果入乡随俗的话,先多线程发展,screening,然后定下一个 |
|
a***y 发帖数: 19743 | 42 Speed Download
不过现在网速快,是不是多线程影响不大。 |
|
l******9 发帖数: 579 | 43 如何确保多线程程序在 multicore server 上确实使用了 所有的 core
I have a multicore server, which has 24 CPU, each CPU has 6 cores.
It is Intel xzeon X5650 2.67GHz
cpu cores : 6
cpu MHz : 1596.000
totally, I have 24 * 6 = 144 cores.
I designed a multithreaded C++ program with boost/thread.
How to make sure that my program is run by all 144 cores ?
Any help is really appreciated.
thanks |
|
h**********c 发帖数: 4120 | 44 \\单线程程序
#include
#include
#include
#include
#include
void parsePermutation (int n, int m, int * rindx,int *results) {
int * data = new int[n];
int i =0,j=0;
for (i=0; i
data[i] = i+1;
for (i=0; i
results[i] = data[rindx[i]-1];
for (j=rindx[i]-1; j
data[j] = data[j+1];
}
}
delete [] data; data = NULL;
}
bool getXs(int n,int *inputs, int * rs) {
bool |
|
h**********c 发帖数: 4120 | 45 //多线程程序,改自MSDN
#include
#include
//#include "Thread.h"
#include
#include
#include
#include
#include
//for timer
#include
#include
#include
#define MAX_THREADS 6
#define BUF_SIZE 255
///////////////////////////////////////////
void parsePermutation (int n, int m, int * rindx,int *results) {
int * data = new int[n];
int i =0,j=0;
for (i=0; i
data[i] = i+1;
for (i= |
|
s*x 发帖数: 3328 | 46 一个cpu,跑多线程,时间应该是越来越多,光是载入载出开销就不小。 |
|
z***e 发帖数: 5393 | 47 奇怪,什么叫最多只能利用到两个physical cpu的资源?虽然很俗,我还是想问一下这
个来源是哪里,我是从来没听说过。
而特定软件的“优化”又具体是指什么优化??唯一一个可以利用的api就是
SetAffinity,但这个并不比自动分配有任何好处。
实际应用中,一般线程数是CPU # x2,这个范围内可以看到明显的效果,再多就没啥差
别了。 |
|
b***i 发帖数: 3043 | 48 同意楼上说的,写得太乱。
你应该抽象一下,贴你的改过的主程序,就是包含生成和结束线程的一个函数就可以了
。你说你生成了几亿个,就是那个。 |
|
|
h**********c 发帖数: 4120 | 50 在单线程程序的for 前面加了一句,
#pragma omp parallel for
performance 略有提高,285.905950秒,
1. 无法证实performance提高了,还是今天晚上运行的程序少了,monitor上显示,一个核
负载比较大,其他的核少,比较均匀.
2. 没有实现cs or mutex,#pragma omp parallel for估计不能处理race condition(有
待查证). |
|