草庐IT

pthread_self

全部标签

php - new self(); 是什么意思?在 PHP 中是什么意思?

我从未见过这样的代码:publicstaticfunctiongetInstance(){if(!isset(self::$_instance)){self::$_instance=newself();}returnself::$_instance;}和newclassName()一样吗?编辑如果类是继承的,它指向哪个类? 最佳答案 self指向编写它的类。所以,如果你的getInstance方法是在一个类名MyClass中,下面这行:self::$_instance=newself();会做同样的事情:self::$_instan

php - PHP 中的 self::$bar 和 static::$bar 有什么区别?

下面例子中使用self和static有什么区别?classFoo{protectedstatic$bar=1234;publicstaticfunctioninstance(){echoself::$bar;echo"\n";echostatic::$bar;}}Foo::instance();产生12341234 最佳答案 当您使用self来指代类成员时,您指的是在其中使用关键字的类。在这种情况下,您的Foo类定义了一个名为$bar的protected静态属性。当您在Foo类中使用self来引用该属性时,您引用的是同一个类。因此,

c++ - 编译时 -pthread 标志的意义

在各种多线程C和C++项目中,我看到-pthread标志应用于编译和链接阶段,而其他人根本不使用它,只是传递-lpthread到链接阶段。不编译和链接-pthread标志是否有任何危险-即-pthread实际上做了什么?我主要对Linux平台感兴趣。 最佳答案 试试:gcc-dumpspecs|greppthread并查找以%{pthread:开头的任何内容。在我的计算机上,这会导致文件使用-D_REENTRANT编译,并与-lpthread链接。在其他平台上,这可能会有所不同。使用-pthread以获得最大的可移植性。在GNUli

c++ - 在没有/proc/self/exe 的情况下查找当前可执行文件的路径

在我看来,Linux使用/proc/self/exe很容易。但我想知道是否有一种方便的方法可以使用跨平台接口(interface)在C/C++中找到当前应用程序的目录。我见过一些使用argv[0]的项目,但它似乎并不完全可靠。如果你必须支持没有/proc/的MacOSX,你会怎么做?使用#ifdefs隔离特定于平台的代码(例如NSBundle)?或者尝试从argv[0]、$PATH等推断可执行文件的路径,冒着在极端情况下发现错误的风险? 最佳答案 一些特定于操作系统的接口(interface):MacOSX:_NSGetExecut

gcc - 如何在编译期间强制 cmake 包含 "-pthread"选项?

我知道有类似find_package(Threads)的东西,但它似乎没有什么不同(至少就其本身而言)。现在我正在使用SET(CMAKE_C_FLAGS${CMAKE_C_FLAGS}"-pthread"),但它对我来说似乎不是一个正确的解决方案。 最佳答案 CMake最新版本(>=3.1)中的Threads模块生成Threads::Threads导入目标。将目标链接到Threads::Threads会添加所有必要的编译和链接标志。可以这样做:set(CMAKE_THREAD_PREFER_PTHREADTRUE)set(THREA

c++ - 是否存在 self 分配有用的情况?

众所周知,在实现赋值运算符时,必须防止自赋值,至少当类具有非POD成员时。通常是(或等价于):Foo&operator=(constFoo&other){if(&other==this)return*this;...//Docopy}没有自动插入自赋值保护的原因是什么?是否存在self分配做一些重要且实用的事情的用例?Foo&operator=(constFoo&other){if(&other==this){//Dosomethingnon-trivial}else{//Docopy}return*this;}现在总结一下答案和讨论看起来非平凡的self分配永远不会真正有用。提出的唯

c++ - 是否存在 self 分配有用的情况?

众所周知,在实现赋值运算符时,必须防止自赋值,至少当类具有非POD成员时。通常是(或等价于):Foo&operator=(constFoo&other){if(&other==this)return*this;...//Docopy}没有自动插入自赋值保护的原因是什么?是否存在self分配做一些重要且实用的事情的用例?Foo&operator=(constFoo&other){if(&other==this){//Dosomethingnon-trivial}else{//Docopy}return*this;}现在总结一下答案和讨论看起来非平凡的self分配永远不会真正有用。提出的唯

ruby - 在父类(super class)的 self.inherited 中访问匿名类的名称

我想访问其父类(superclass)中的类名MySuperclass'self.inherited方法。它适用于classFoo定义的具体类但是在使用匿名类时失败了。我倾向于避免在测试中创建(类)常量;我希望它能与匿名类一起使用。给定以下代码:classMySuperclassdefself.inherited(subclass)super#workwithsubclass'nameendendklass=Class.new(MySuperclass)dodefself.name'FooBar'endendklass#name仍将是nil什么时候MySuperclass.inheri

ruby - 顶级方法中 `self` 的规则是什么?

如果我在Ruby文件中定义一个顶级方法,self的值似乎在很大程度上取决于调用它的人。defwho_am_iputsself.inspectendclassAdefself.foowho_am_ienddeffoowho_am_iendenddeffoowho_am_iendfoo#>>mainA.foo#>>AA.new.foo#>>#显然,如果一个方法是在一个类中定义的,self要么是类本身(对于类方法),要么是该类的相关实例(例如方法)。似乎,根据上面显示的试验,类中定义的方法not从其调用者继承self,但我找不到任何官方引用或任何东西支持这一点。有人可以提供描述这种行为的官方

ruby - 在 Ruby 中,self.user_name 与@user_name 不一样吗?

在Ruby中,不是像@foo这样的实例变量和@@bar这样的类变量吗?在一些代码中,我看到了一些self.user_name=@name甚至a+=1ifname!=user_name#thistime,withoutthe"self."#anditisthefirstlineofamethodso#itdoesn'tlooklikeitisalocalvariableself是为了什么?我认为它可能是一个访问器,但它不能只是user_name而不是self.user_name吗?而且我什至没有看到任何使其成为访问器的代码,例如attr_accessor,而且也不在基类中。