多线程与同步
japelly2010
这个作者很懒,什么都没留下…
展开
-
有状态对象和无状态对象
1、线程安全 要搞清楚有状态对象和无状态对象,首先需要弄清楚线程安全的问题。如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,那么就是线程安全的。 或者说,一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考...转载 2018-06-05 11:09:12 · 176 阅读 · 0 评论 -
多线程程序设计中的线程上下文切换
Context Switches 上下文切换,有时也被称为进程切换(process switch)或任务切换。是一个重要的性能指标。CPU从一个线程切换到另外一个线程,需要保存当前任务的运行环境,恢复将要运行任务的运行环境,必然带来性能消耗。Context Switches 上下文切换简介操作系统可以同时运行多个进程, 然而一颗CPU同时只能执行一项任务,操作系统利用时间片轮转的方式,让用户感觉这...转载 2018-06-13 13:36:52 · 670 阅读 · 0 评论 -
多线程编程中的有状态(stateful)和无状态(stateless)以及可重入、不可重入
要写出线程安全的类和函数,有状态、无状态,可重入、不可重入这四个概念绕不开。什么是线程安全的类和函数呢?就是可以被多个线程调用而不会出现数据的错乱的类的对象和函数。导致线程不安全的根本原因是函数或类对象中使用了共享数据(类静态成员变量、全局变量等),由于没有对这些共享数据进行同步操作而导致数据错乱。根据这个原因就把函数或类分成下边两种情况:1.无状态的这类函数和类对象不包含任何其他作用域中的变量或...原创 2018-06-13 21:55:32 · 507 阅读 · 0 评论