博客学习三

1、windows下多线程创建机制:

参考博客:http://www.jb51.net/os/windows/121172.html

进程:系统进行资源分配和调度的一个独立单位
线程:进程的一个实体,CPU调度和分派的基本单位

windows下进程线程创建:
1)打开在该进程中执行的映像文件
2)创建执行体进程对象
3)创建初始线程
4)通知系统新进程创建了
5)开始执行初始线程
6)在新进程和线程环境中完成地址空间的初始化,然后开始到进程入口执行


2、Linux下的多线程机制:

参考博客:http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/

介绍比较古老了,但是原理可以学习
__pthread_handles数组结构:线程存储
__pthread_main_thread链表:创建释放线程
创建管理线程:
pthread_create-->__pthread_initialize_manager-->__clone()-->__pthread_manager()
管理线程栈:THREAD_MANAGER_STACK_SIZE大小作为自己的运行栈
用户线程栈:i386:
(1)FLOATING_STACK:mmap()分配8MB,mprotect()设置其中第一页为非访问区
(2)用户自定义栈:按照指针对界后,设置线程栈顶,计算栈底,不做保护
每个线程同时具有线程ID和进程ID
第n个用户线程的线程id遵循公式:
tid=n*PTHREAD_THREADS_MAX+n+1
保证了所有线程不会有相同的线程id
线程创建:
pthread_create向管理线程发送REQ_CREATE请求
管理线程调用pthread_handle_create()创建新线程
分配栈、设置thread属性
以pthread_start_thread()为函数入口,调用__clone()创建并启动新线程
pthread_start_thread():读取自身进程ID存入线程描述结构中,并根据其中记录的调度方法配置调度,一切准备就绪之后,再调用真正的线程执行函数,并在此函数返回后调用pthread_exit()


3、网页正文提取相关的博客,用于搜索引擎开发:

libcurl和网页正文提取:
http://wenku.baidu.com/link?url=1AhrFLpAqKY0lqA9Tn0LMBHEUifA4kkqL0t62jF-XMxbGytPp66fEscfYqsE6S5HTOgPMRm9OIeKXNTjwWndKlKZNXLgh5CbFwGni26vuNi

http://blog.csdn.net/zvane/article/details/2201414

http://blog.csdn.net/zhoubl668/article/details/7416746

http://www.baidu.com/link?url=TzI_48rG8y4QQk87F5NNjBgEuSyDlqK4z6FuLzuZ5YekTNLNQysUbjfRSQOTPKTBG32ZxMiO6rKCersZlooo4a

http://www.lupaworld.com/portal.php?mod=view&aid=234808&page=all

http://blog.csdn.net/zzxian/article/details/6748177


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值