Boost C++庫是一個非常強大且功能豐富的C++庫,它提供了許多實用的工具和組件,可以幫助開發者更高效地進行多線程編程
#include<boost/thread.hpp>
void thread_function() {
// 線程執行的代碼
}
int main() {
boost::thread t(thread_function);
t.join();
return 0;
}
#include<boost/thread/mutex.hpp>
boost::mutex mtx;
void thread_function() {
boost::unique_lock<boost::mutex> lock(mtx);
// 訪問共享數據
}
#include<boost/thread/condition_variable.hpp>
boost::mutex mtx;
boost::condition_variable cond;
void thread_function() {
boost::unique_lock<boost::mutex> lock(mtx);
cond.wait(lock, []() { return /* 條件 */; });
// 執行后續操作
}
void another_thread_function() {
// 修改共享數據
cond.notify_one();
}
#include<boost/atomic.hpp>
boost::atomic<int> atomic_counter(0);
void thread_function() {
++atomic_counter;
}
#include<boost/asio.hpp>
void handle_accept(const boost::system::error_code& error) {
// 處理新連接
}
int main() {
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 12345));
for (;;) {
boost::shared_ptr<boost::asio::ip::tcp::socket> socket(new boost::asio::ip::tcp::socket(io_service));
acceptor.async_accept(*socket, boost::bind(handle_accept, boost::asio::placeholders::error));
io_service.run();
}
return 0;
}
這些組件可以幫助你更輕松地進行多線程編程,提高代碼的可讀性和可維護性。當然,Boost庫還提供了許多其他功能,你可以根據項目需求選擇合適的組件。