• 不同平台的线程并发接口对比


    SDL2中的并发线程机制

    线程管理

    • 线程创建——SDL_CreateThread
    • 线程销毁——SDL_DetachThread
    • 获得线程ID——SDL_GetThreadID/SDL_ThreadID
    • 获得线程名称——SDL_GetThreadName
    • 设置线程优先级——SDL_SetThreadPriority
    • 等待线程结束——SDL_WaitThread

    线程同步机制

    • 条件量
      • SDL_CreateCond
      • SDL_DestroyCond
      • SDL_CondBroadcast
      • SDL_CondSignal
      • SDL_CondWait
      • SDL_CondWaitTimeout
    • 互斥量
      • SDL_CreateMutex
      • SDL_DestroyMutex
      • SDL_LockMutex
      • SDL_TryLockMutex
      • SDL_UnlockMutex
    • 信号量
      • SDL_CreateSemaphore
      • SDL_DestroySemaphore
      • SDL_SemPost
      • SDL_SemTryWait
      • SDL_SemValue
      • SDL_SemWait
      • SDL_SemWaitTimeout

    原子操作

    • SDL_AtomicAdd
    • SDL_AtomicGet
    • SDL_AtomicLock
    • SDL_AtomicSet

    关于函数详细说明,建议参考sdl-wiki

    Windows下线程并发机制

    线程管理--MSDN

    • 线程创建——CreateThread、_beginthread、_beginthreadex
    • 线程结束——ExitThread、_endthread、_endthreadex
    • 强制线程结束——TerminateThread
    • 获取和设置线程优先级——GetThreadPriority、SetThreadPriority
    • 等待线程结束——WaitForSingleObject
    • 获取线程id——GetThreadID
    • 获得线程句柄——OpenThread、GetCurrentThread、CloseHandle
    • 获得线程退出码——GetExitCodeThread

    线程同步机制--同步对象&线程同步

    • Critical Section
    • Condition
    • Muxtex
    • Event
    • Semaphore
    • Waitable Timer
    • Thread/Process Handle

    更多的细节建议参考MSDN上介绍。

    原子操作——Interlocked系列

    • 自增——InterlockedIncrement
    • 自减——InterlockedDecrement

    Linux下线程并发机制

    由于我之前对Linux编程未关注,线程并发了解并不多,不过从搜索结果来看多数还是pthread库。
    这里先基于这个版本整理下。

    线程管理

    • 线程创建——pthread_create()
    • 线程终止——pthread_exit()
    • 线程异常终止——pthread_cancel()
    • 等待线程结束——pthread_join()
    • 初始化、销毁线程的属性——pthread_attr_init()、pthread_attr_destroy()
    • 杀死线程信号——pthread_kill()
    • 判断两个线程是否一致——pthread_equal()
    • 分离线程——pthread_detach()
    • 查询线程标识号——pthread_self()

    线程同步机制

    • 互斥量Mutex
      • pthread_mutex_init() 初始化互斥锁
      • pthread_mutex_destroy() 删除互斥锁
      • pthread_mutex_lock() 占有互斥锁(阻塞操作)
      • pthread_mutex_trylock():试图占有互斥锁(不阻塞操作)。即,当互斥锁空闲时,将占有该锁;否则,立即返回。
      • pthread_mutex_unlock(): 释放互斥锁
    • 条件变量 Condition
      • pthread_cond_init():初始化条件变量
      • pthread_cond_destroy():销毁条件变量
      • pthread_cond_signal(): 唤醒第一个调用pthread_cond_wait()而进入睡眠的线程
      • pthread_cond_wait(): 等待条件变量的特殊条件发生
    • 信号量 sem
      • sem_init函数:该函数用于创建信号量
      • sem_wait函数:等待并获取信号量
      • sem_post函数:释放信号量
      • sem_destroy函数:销毁信号量

    原子操作

  • 相关阅读:
    noi2002银河英雄传说(并查集)
    Ural1076(km算法)
    km算法的个人理解
    函数之装饰器
    函数进阶(一)
    python全栈测试题(一)
    python基础之循环语句
    字符串方法总结
    python基础3
    python基础2
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/10785556.html
Copyright © 2020-2023  润新知