只显示主题贴
int pthread_setspecific(pthread_key_t key, const void * pointer){ pthread_descr self = thread_self(); unsigned int idx1st, idx2nd; if (key >= PTHREAD_KEYS_MAX || !pthread_keys[key].in_use) return EINVAL; idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE; idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE; if ...
- 进入论坛 综合技术 版
这里面主要是fs这个后来引入的寄存器造成的。linux有关nptl的设计文档里提到了这一点。
- 进入论坛 综合技术 版
这个东东有一定的历史,说起来话长,高效TLS的设计在以前硬件不支持的时候比较麻烦,后来专门有线程寄存器来做这个事情。看这段代码static inline struct _TEB * NtCurrentTeb(void){struct _TEB * pTeb;__asm mov eax, fs:0x18__asm mov pTeb, eaxreturn pTeb;} 这里存放的是每个线程的数据,最早以前的实现可能是放一个映射表,切换线程的时候来查找。要不你得根据TID来自己进行TLS的数据查找,显然效率不快。其实也不能完全说硬件支持,但软件支持的TLS效率显示不高。
- 进入论坛 综合技术 版
1、C++写CGI没有现成的模板引擎,写起来很累很烦。2、维护和修改起来很麻烦。3、BS瓶颈在io,并不是说调用函数,而是数据库的处理,我想应该是这个意思。4、内存管理方面,如果做得不好,只有过段时间就重起fastcgi.5、静态变量可以直接用共享内存做。6、fastcgi+C++的速度确实很快,要是追求极速的话,这是个途径,但要看瓶颈和有没有必要高效7、boost库能让你用很少的代码来做某件事情,但难维护,在很多情况下,代码越少越难维护和调试。8、可以用写php的模块,这样也不错。
- 进入论坛 综合技术 版
Parallism,Cloud Computing这些东东到底会有什么用处,我认为说不清楚,也是又是一次概念?
- 进入论坛 综合技术 版
楼主,你可以试试EMS MySQL Manager
http://www.duote.com/soft/3276.html
- 进入论坛 入门讨论 版
或者我更喜欢看robbin的文章,因为真实的写出了开发的时候碰到的问题,那是最难得的,优点和限制我们都从中知道了,技术上也收获不少。
- 进入论坛 Ruby 版







评论排行榜