multithreading - 什么是特定于流程的变量?

标签 multithreading smalltalk pharo

我试图加载一个显然是为早期版本的 Pharo 编写的包(Ratpack,从 http://ss3.gemstone.com/ss/RatPack.html 到 Pharo 1.4)。

在那里我收到了关于 environmentAt:put: 的弃用警告不支持 Project .

根据文档,要走的路是使用 ProcessSpecificVariable .

我的问题是:

  • 这些是什么?
  • 我如何使用它们?
  • 如何将“旧”(已弃用)代码移植到这个新系统?

  • 谢谢!

    最佳答案

    您可以在 issue tracker 中找到有关 PSS 的讨论。

    这是 Igor 关于如何使用 ProcessSpecificVariables 的片段:

    假设 MyProcessSpecificVar 是 ProcessSpecificVariable 的子类。

    然后你可以这样做:

    [ MyProcessSpecificVar value: foo. ] fork.
    
    [ MyProcessSpecificVar value. ] fork.
    

    等,即以与旧实现相同的方式允许这样做。

    但是对于新的 implementation ,您还可以使用它的实例,因此您不必为每个可能想要使用的特定于进程的 var 创建一个新类:
    mykey := MyProcessSpecificVar new.
    
    
    [ mykey value ] fork.
    [ mykey value: 10 ] fork.
    

    关于multithreading - 什么是特定于流程的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682917/

    相关文章:

    smalltalk - self subclassResponsibility 的使用

    smalltalk - 导出和共享 Smalltalk 项目

    smalltalk - 多晶型和规范有什么区别?

    c++ - 多线程应用程序中的死锁检测

    python - 在 Python 中给事件线程一个唯一的编号

    collections - 添加来自不同实例的集合

    smalltalk - 如何在 Cuis/Squeak/Pharo 中强制完成(用于测试)?

    closures - 动态创建 BlockClosures?

    java - java中的TCP套接字编程和多线程

    c# - 如何在 C# 中保护 SqlDataReader 免受多次访问