Affinity If a thread is dedicated to say , polling a serial or Ethernet port which has a high input data rate , then dedicating one CPU to that task/thread is useful.
(Hard Affinity) with multi-core CPU's is to dedicate a specific core to a task (thread) and just poll the input memory mapped source. This works very well. http://www.ibm.com/developerworks/linux/library/l-affinity/index.html#download These Linux API functions set the affinity for processes : sched_set_affinity() (for altering the bitmask) sched_get_affinity() (for viewing the current bitmask) These functions set the affinity for threads : pthread_setaffinity_np (pthread_t thread, size_t cpusetsize, const cpu_set_t *cpuset); pthread_getaffinity_np (pthread_t thread, size_t cpusetsize, cpu_set_t *cpuset); They are very simple to translate into Free Pascal Brian -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Threading-vs-Parallelism-tp5728018p5728437.html Sent from the Free Pascal - General mailing list archive at Nabble.com. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal