一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
线程是指进程中的一个执行流程,一个进程中可以运...
分类:
编程语言 时间:
2014-05-12 14:41:33
阅读次数:
362
一共M个任务以及N个线程,我们需要将M个任务均匀地分配到N个线程。
假设各个任务有自己的任务id,简单的做法是i=id%N(i指分配到哪个线程处理)。
但如果任务id分布不均衡将导致任务的最终分配不均衡,为了解决这一问题,一个简单的方法是对任务id进行一个hashcode转换,使得转换...
分类:
其他好文 时间:
2014-05-12 13:59:09
阅读次数:
240
readdir()在多线程操作中不安全,Linux提供了readdir_r()实现多线程读取目录内容操作。#include
#include #include int main(void){ DIR* dirp; struct dirent
*dp1=malloc(sizeof(stru...
分类:
其他好文 时间:
2014-05-12 13:34:35
阅读次数:
914
一、
基本简介block用来保存一段代码block的标志:^block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场用的很多block跟函数很像:
1.可以保存代码 2.有返回值 3.有形参 4.调...
分类:
其他好文 时间:
2014-05-12 13:01:45
阅读次数:
225
近几年,业内对并行和并发积累了丰富的经验,有了较深刻的理解。但之前积累的大量教材,在当今的软硬件体系下,反而都成了负面教材。所以,有必要加强宣传,翻新大家的认知。
首先,天地倒悬,结论先行:当你需要并行时,优先考虑不需要线程间共享数据的设计,其次考虑共享Immutable的数据,最糟情况是共享Mutable数据。这个最糟选择,意味着最差的性能,最复杂啰嗦的代码逻辑,最容易出现难于重现的bug...
分类:
其他好文 时间:
2014-05-10 09:00:09
阅读次数:
334
GCD的基本思想是就将操作s放在队列s中去执行操作使用Blocks定义队列负责调度任务执行所在的线程以及具体的执行时间队列的特点是先进先出(FIFO)的,新添加至对列的操作都会排在队尾提示GCD的函数都是以dispatch(分派、调度)开头的队列dispatch_queue_t
串行队列,队列中的任...
分类:
其他好文 时间:
2014-05-10 07:18:06
阅读次数:
286
第一章 内存分配
1. 内存区域。
方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离)。
1) java虚拟机栈:线程私有。描述的是java方法执行的内存模型:栈帧,用户存储 局部变量表,操作数栈,动态链接,方法出口等信息。
局部变量表在编译时即可完全确定!如果线程请求的栈深度大于 规定的深度,StackOverflowErro...
分类:
其他好文 时间:
2014-05-10 04:47:01
阅读次数:
275
OSIP在定义多线程的时候,需要添加锁,如果没有使用到多线程,就没有使用到锁的功能。文件代码:osip_fifo.h/***Structureforreferencingafifo.*@varosip_fifo_t*/typedefstructosip_fifoosip_fifo_t;/***Structureforreferencingafifo.*@structosip_fifo*/structosip_fifo{#if..
分类:
编程语言 时间:
2014-05-10 04:10:53
阅读次数:
640
java多线程操作函数,join、interupt、setDaemon...
分类:
编程语言 时间:
2014-05-10 03:53:22
阅读次数:
374
一基本概念
该类恰是上文介绍的DatagramSocket的子类。
DatagramSocket只允许数据报发送给指定的目标地址,而MulticastSocket可以将数据报以广播的方式发送到多个客户端
若要使用多点广播,则需要让一个数据报标有一组目标主机地址,当数据报发出后,整个组的所有所有主机都能收到该数据报。IP多点广播(或多点发送)实现了将单一信息发送到多个接受者的...
分类:
编程语言 时间:
2014-05-10 03:46:16
阅读次数:
341