古腾堡布局的网站,建设有一个网站需要什么,dedecms 建两个网站的问题,怎么建立自己网站 asp0.线程状态
初始化#xff1a;该线程正在被创建#xff1b; 就绪#xff1a;该线程在列表中就绪#xff0c;等待CPU调度#xff1b; 运行#xff1a;该线程正在运行#xff1b; 阻塞#xff1a;该线程被阻塞挂机#xff0c;Blocked状态包括#xff1a;pend#xff…0.线程状态
初始化该线程正在被创建 就绪该线程在列表中就绪等待CPU调度 运行该线程正在运行 阻塞该线程被阻塞挂机Blocked状态包括pend通过锁、事件、信号量等阻塞、suspend主动pend延时阻塞delay、pendtime因为锁、事件、信号量时间等超时等待 退出该线程运行结束等待父线程收回器控制块资源
1.竞争状态和临界区
竞争状态多线程同时读写共享数据 临界区读写共享数据的代码片段 因此在代码运行过程中需要避免竞争状态策略对临界区进行保护同时只能有一个线程进入临界区
2.代码案例
#include iostream
#include threadvoid TestThread()
{std::cout std::endl;std::cout test 001 std::endl;std::cout test 002 std::endl;std::cout test 003 std::endl;std::cout std::endl;
}int main()
{for (int i 0; i 10; i){std::thread th(TestThread);th.detach();}getchar();return 0;
}#include iostream
#include thread
#include mutexstatic std::mutex mux;
void TestThread()
{mux.lock();std::cout std::endl;std::cout test 001 std::endl;std::cout test 002 std::endl;std::cout test 003 std::endl;std::cout std::endl;mux.unlock();
}int main()
{for (int i 0; i 10; i){std::thread th(TestThread);th.detach();}getchar();return 0;
}