当前位置: 首页 > 面试题库 >

线程名称超过15个字符?

龚志
2023-03-14
问题内容

通过使用诸如prctl或pthread_set_name_np之类的函数,可以更改线程的名称。至少在Linux
2.6.38中,这两个函数施加的限制是该名称不能超过15个字符(NULL终止为第16个字节)。

这15个字符的限制在哪里,周围有什么(甚至是非正统的)方法?

更新

如注释中所述,这是由内核强加的。

定义可以在这里找到:http
:
//lxr.linux.no/linux+v2.6.37/include/linux/sched.h#L245


问题答案:

15个字符的限制由内核完成。

struct task_struct :: comm [TASK_COMM_LEN],它是16字节宽。

如果要增加内核,则必须重新编译内核。



 类似资料:
  • 问题内容: 我在MySQL数据库中有一张表。该表的名称超过30个字符,我想在Oracle 11g中创建相同的表,但是Oracle仅允许名称中最多包含30个字符的表。 我不能将表的名称更改为少于30个字符,因为系统是基于这些表的,如果更改名称,这将花费我很多钱,因此更改表名称不是我的答案正在寻找。 有一个名为的表,当我描述该表时,它说该字段具有数据类型,因此我试图更改该表并制作,但我做不到,这给了我

  • 问题内容: 我有一个多线程应用程序,并且通过属性为每个线程分配了唯一的名称。现在,我希望功能可以使用相应的名称直接访问线程。 类似于以下功能的东西: 上面的函数检查所有正在运行的线程,然后从正在运行的线程集中返回所需的线程。也许我想要的线程被中断了,那么上面的功能将无法正常工作。关于如何整合该功能的任何想法? 问题答案: 您可以使用ThreadGroup查找所有 活动 线程: 获取当前线程的组 通

  • 我为我的应用程序运行了这段代码 我得到了以下结果 {Thread[pool-1-thread-1,5,main]=[Ljava.lang.StackTraceElement;@E21F0DC,Thread[queued-work-looper,5,main]=[Ljava.lang.StackTraceElement;@1FEC5E5,Thread[FinalizerWatchdogDaemon,

  • 问题内容: 这应该很简单,但我只是没有看到。 如果我有一个进程ID,该如何使用它来获取有关该进程的信息,例如进程名称。 问题答案: 在Linux下,您可以读取proc文件系统。文件包含命令行。

  • 问题内容: 我知道我们在谈论流程时可以有“父母”和“孩子”。但是可以得到父母的名字吗? 我做了研究,但只找到了.Net的答案 但是您可能会考虑: 使用来自父线程的线程ID前缀新线程的名称 在您想要产生的方法上创建一个构造函数,该方法需要父对象的线程ID 编辑:我尝试设置名称: 问题答案: 我知道我们在谈论流程时可以有“父母”和“孩子”。但是可以获取父线程名称吗? 线程没有对父线程的引用,因此您无法

  • 问题内容: 我有一个带有log4j的Struts应用程序,用于显示有关应用程序的信息。 格式化日志输出的模式如下: 我需要在日志中显示 线程ID 而不是 线程名称 。显示线程名称的转换字符为%t。我没有在log4j文档中看到获得它的方法。 谁能帮我?? 问题答案: 这是可能的,但并不像仅使用一些预配置的模式那样容易。 Log4j 1.X和Log4j 2.x没有用于打印线程ID的任何预配置模式,但是