包括Java、C#、Visual C++.NET、Visual Basic.NET、Python等语言在内的许多通用程序设计语言都提供了可以使用的并发原语。C和C++中没有提供类似功能,因此称为单线程语言(在很多计算机平台上,通过使用专门的代码库,C和C++也可以执行多线程,但是这些库并不是这两种语言的ANSI/ISO标准版本的一部分)。
线程所拥有的资源是进程资源的子集。
什么是线程安全?
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。