首页 > 试题广场 >

下面哪个方法可以用来创建一个子线程?

[单选题]
下面哪个方法可以用来创建一个子线程?
  • thread.start()
  • pthread_create()
  • CreateThread()
  • fork()
选项 A:thread.start()
在 Python 中,thread 模块在 Python 2.x 中使用,用于创建和管理线程,不过该模块在 Python 3.x 中已被弃用,且正确的创建线程并启动的方式是 threading.Thread(target=func).start(),而不是 thread.start(),同时这里问的是通用的创建子线程方法,所以该选项不符合要求。
选项 B:pthread_create()
pthread_create() 是 POSIX 线程库中的函数,用于在 C 或 C++ 程序中创建一个新的线程。它是在 Unix、Linux 等系统中常用的创建线程的方法,其函数原型如下:
c
#include <pthread.h>

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                   void *(*start_routine) (void *), void *arg);

该函数可以成功创建一个子线程,所以该选项正确。

选项 C:CreateThread()
CreateThread() 是 Windows 操作系统提供的一个 API 函数,用于在 Windows 环境下创建一个新的线程。它与 pthread_create() 不同,pthread_create() 是跨平台的(在支持 POSIX 线程标准的系统上),而 CreateThread() 仅适用于 Windows 系统,不过它也可以用来创建子线程。其函数原型如下:

#include <windows.h>

HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES   lpThreadAttributes,
  SIZE_T                  dwStackSize,
  LPTHREAD_START_ROUTINE  lpStartAddress,
  __drv_aliasesMem LPVOID lpParameter,
  DWORD                   dwCreationFlags,
  LPDWORD                 lpThreadId
);


选项 D:fork()
fork() 是 Unix、Linux 等系统中的一个系统调用,它的作用是创建一个新的进程,而不是线程。新创建的进程是调用 fork() 的进程的子进程,子进程会复制父进程的大部分资源。
综上所述,选项 B 和选项 C 都可以用来创建子线程。

发表于 2025-05-02 22:20:51 回复(0)