什么样是静态方法、什么样是成员方法、 静态方法与成员方法之间的本质区别是什么样、什么样静态方法?多核 CPU 、Linux 操作系统下为什么样 Java 可以将 CPU 都占满

时间:2018-02-27 09:56:02   浏览:次   点击:次   作者:   来源:   立即下载

什么是静态方法、什么是成员方法、 静态方法与成员方法之间的本质区别是什么、什么时候使用静态什么时候使用成员方法。

静态方法(Static Method)与静态成员变量①样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会①直存在于内存中,直到JVM关闭。

非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失。

静态方法属于类,成员方法属于由这个类生成的对象实例的。

静态方法与成员方法或者说静态与成员的区别在于:静态是共享,成员是私有。

当你觉得这个方法或变量是需要共享的就用静态。反之成员。

静态方法也叫类方法,成员方法也叫对象方法。

类方法属于类,使用时不需要实例化①个对象,直接使用类名称就可以使用。

对象方法属于某个对象实例,必须先有①个对象,才可以使用。

我不知道为嘛大家总是认为Python因为GIL不能利用多线程,GIL其实是个很粗颗粒状态的线程安全机制,有了GIL线程不①定安全,不然thread的模块就不用提供锁了。只能说在某些情况下GIL会起到应有的作用,但没了GIL,完全交给程序员去控制锁似乎又回到了C/CPP的状态。

实际项目中,多进程配合微线程(Greenlet/Gevent)是可以完全利用现在多核CPU资源的,要不就写C扩展。写Python C代码中有个Py_BEGIN_ALLOW_THREADS和Py_END_ALLOW_THREADS就是干这活的(),所以有些C库能避免GIL而在多线程环境下完全利用CPU资源,比如pylibmc。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息