20并发编程

并发编程

  • 并发:指程序的多个部分在同一时间内执行
  • 并行:指程序的多个部分在同一时间内在多个处理器上执行。

并发编程中的线程

  • 线程是一种轻量级的进程,他于同一进程中的其他线程共享相同的地址空间和其他资源,但是每个线程都有自己的执行线
  • 线程提供一种比进程更轻量级的并发编程模型

线程的创建

  • POSIX线程库提供了创建线程的API,名为pthread_create
  • 线程创建后,程序中会有多个线程同时执行,因此程序的正确性取决于这些线程之间的交互方式

线程的同步

  • 线程之间的同步是指线程之间协调它们的活动,以便它们在正确的时间执行正确的操作。
  • 常见的同步机制包括互斥量、条件变量和信号量。

互斥量

  • 互斥量是一种同步机制,用于控制对共享资源的访问,以确保一次只有一个线程可以访问共享资源
  • POSIX线程库提供一种名为pthread_mutex的互斥量

条件变量

  • 条件变量是一种同步机制,用于允许线程在等待某些条件成立时挂起,并在条件满足时恢复。
  • POSIX线程库提供了一种名为pthread_cond的条件变量

信号变量

  • 信号量是一种同步机制,用于控制对共享资源的访问,并提供了计数器功能。
  • POSIX线程库提供了一种名为sem_t的信号量

死锁

  • 死锁是一种情况,其中两个或多个线程被互相持续等待彼此持有的资源。
  • 死锁是并发编程中的一种常见问题,因此需要小心设计线程间的交互方式

线程的竞争条件

  • 竞争条件是指程序的正确性取决于线程之间的执行顺序,以及线程之间对共享资源的访问。
  • 竞争条件可能到导致未定义的行为或者程序错误,因此需要小心设计线程间的交互方式。

线程安全的设计

  • 线程安全是指程序能够正确地在多个线程同时执行时运行。
  • 线程安全的设计包括使用同步机制来保护共享资源、避免竞争条件以及小心设计线程间的交互方式。

你可能感兴趣的:(java,数据库,分布式)