From e2ba5f4615084af220c4dccf5879643e7f23e0f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97=E4=BC=9F?= Date: Sun, 27 Oct 2024 00:00:09 +0800 Subject: [PATCH] Update ch8 1thread-kernel.rst --- source/chapter8/1thread-kernel.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/chapter8/1thread-kernel.rst b/source/chapter8/1thread-kernel.rst index 8004e69ec..b0802a925 100644 --- a/source/chapter8/1thread-kernel.rst +++ b/source/chapter8/1thread-kernel.rst @@ -50,7 +50,7 @@ - 第一个参数为一个类型为 ``pthread_t`` 的线程结构体的指针。在实际创建线程之前我们首先要创建并初始化一个 ``pthread_t`` 的实例,它与线程一一对应,线程相关的操作都要通过它来进行。 - 通过第二个参数我们可以对要创建的线程进行一些配置,比如内核应该分配给这个线程多少栈空间。简单起见我们这里不展开。 - 第三个参数为一个函数指针,表示创建的线程要执行哪个函数。观察函数签名可以知道该函数的参数和返回值类型均被要求为一个 ``void *`` ,这样是为了兼容各种不同的线程函数,因为 ``void *`` 可以和各种类型的指针相互转换。在声明函数的时候要遵循这个约定,但实现的时候我们常常需要首先将 ``void *`` 转化为具体类型的指针。 -- 第四个参数为传给线程执行的函数的参数,类型为 ``void *`` ,和函数签名中的约定一致。需要这个参数的原因是:方便期间,我们常常会让很多线程执行同一个函数,但可以传给它们不同的参数,以这种手段来对它们进行区分。 +- 第四个参数为传给线程执行的函数的参数,类型为 ``void *`` ,和函数签名中的约定一致。需要这个参数的原因是:方便区分,我们常常会让很多线程执行同一个函数,但可以传给它们不同的参数,以这种手段来对它们进行区分。 让我们来看一个例子: @@ -1130,4 +1130,4 @@ 因此,这里我们就不再重复介绍这两种机制了。 -.. [#dak] 达科塔盗龙是一种生存于距今6700万-6500万年前白垩纪晚期的兽脚类驰龙科恐龙,它主打的并不是霸王龙的力量路线,而是利用自己修长的后肢来提高敏捷度和奔跑速度。它全身几乎都长满了羽毛,可能会滑翔或者其他接近飞行行为的行动模式。 \ No newline at end of file +.. [#dak] 达科塔盗龙是一种生存于距今6700万-6500万年前白垩纪晚期的兽脚类驰龙科恐龙,它主打的并不是霸王龙的力量路线,而是利用自己修长的后肢来提高敏捷度和奔跑速度。它全身几乎都长满了羽毛,可能会滑翔或者其他接近飞行行为的行动模式。