21xrx.com
2024-11-22 07:32:19 Friday
登录
文章检索 我的文章 写文章
C++多线程函数介绍
2023-07-06 17:03:42 深夜i     --     --
C++ 多线程 函数

C++是一种强大的编程语言,允许开发人员创建高效和可靠的应用程序。其中一个重要的特性是多线程,它允许程序员同时执行多个任务,从而提高应用程序的性能和响应速度。在本文中,我们将介绍C++中多线程的一些函数,帮助您更好的使用多线程。

1. std::thread

std::thread是C++11中引入的一个函数,用于创建新的线程。它接受一个函数作为参数,并以此创建一个新的线程。下面是一个使用std::thread创建线程的示例代码:


#include <iostream>

#include <thread>

void thread_function()

  std::cout<<"Hello from thread"<<std::endl;

int main()

{

  std::thread t(&thread_function);

  t.join();

  return 0;

}

在这个例子中,我们定义了一个名为thread_function的函数,并使用std::thread创建一个新的线程t,并将其作为参数传递给这个函数。需要注意的是,std::thread创建的线程需要使用join()或者detach()函数结束线程。在这个例子中,我们使用t.join()函数等待线程t执行完毕。

2. std::this_thread::sleep_for

std::this_thread::sleep_for是一个函数,用于暂停当前线程的执行。它接受一个时间间隔作为参数,并在指定的时间间隔内暂停线程的执行。下面是一个使用std::this_thread::sleep_for暂停线程的示例代码:


#include <iostream>

#include <thread>

#include <chrono>

void thread_function()

{

  for(int i=0;i<5;i++)

  {

    std::cout<<"Counting from thread: "<<i<<std::endl;

    std::this_thread::sleep_for(std::chrono::seconds(1));

  }

}

int main()

{

  std::thread t(&thread_function);

  t.join();

  return 0;

}

在这个例子中,我们定义了一个名为thread_function的函数,使用std::this_thread::sleep_for在每次循环时暂停线程的执行1秒钟,从而实现了线程的计数器功能。

3. std::mutex

std::mutex是一个互斥量,用于实现线程同步。它的作用是保护共享资源,使得多个线程无法同时访问同一个共享资源,从而避免数据竞争和死锁。下面是一个使用std::mutex实现线程同步的示例代码:


#include <iostream>

#include <thread>

#include <mutex>

std::mutex m;

void thread_function()

{

  m.lock();

  std::cout<<"Hello from thread"<<std::endl;

  m.unlock();

}

int main()

{

  std::thread t(&thread_function);

  t.join();

  return 0;

}

在这个例子中,我们定义了一个名为m的互斥量。在线程函数thread_function中,我们首先使用m.lock()函数锁定互斥量,执行输出语句,然后使用m.unlock()函数解锁互斥量,以保证线程安全。

总之,C++多线程是一个强大的功能,可以帮助开发人员创建高效和可靠的应用程序。本文介绍了C++中多线程的几个重要函数,希望能够帮助读者更好地理解和使用多线程。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复