跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Java 中对象和执行对象线程的割裂…
未分類
17 1 月 2021

Java 中对象和执行对象线程的割裂…

Java 中对象和执行对象线程的割裂…

資深大佬 : asanelder 8

在 Java 中, 有对象, 和线程这两个概念, 对象虽然有数据和形为, 但对象本身不能执行, 要使用线程来执行.

俺感受这和现实中的对象不匹配, 现实中有行为的对象一般都是可自运行的(比如说人)

也就是现实中, 对象和执行对象的线程在绑定在一起的.

Java 中编程模型和现实的不匹配导致写多线程程序时, 总是感觉不那么直观. 比如总要想这个对象的代码是在哪个线程中执行的.

有没有那种库或语言可以把执行环境和对象进行绑定的啊…

大佬有話說 (19)

  • 資深大佬 : wysnylc

    谁说现实里对象和执行对象的线程在绑定在一起,我用泡面碗泡茶不可以吗?

  • 資深大佬 : lewis89

    面向对象发明跟流行的时候,多核 CPU 还在工程师的美好憧憬中,Python 的 GIL 到现在都没去除呢,想那么多干嘛

  • 資深大佬 : acmore

    “对象本身的执行” 在现实中也不存在,程序应该类比于人的 DNA,现实中 DNA 一样不能自己运行,需要人这个载体来执行,人就是线程。”执行” 这个概念本身就是有执行能力的使动方执行某种可执行的规范,代码是规范,线程是运行起来的规范,这一切都非常自然。

    达到 “把执行环境和对象进行绑定” 这种效果在 Java 中就可以做,把执行逻辑和 Executor 放一起就好了,然后外部调用。计算机中不存在一个对象天然地就能执行,这是操作系统的基础:代码只是块设备中的字节而已,总要有进程和线程来执行它。

  • 資深大佬 : TypeError

    golang 啊,一个 go 关键词自动创建 goroutine 调度后台运行,
    不用自己思考太多,除非存在数据同步需要用 channel 或者锁

  • 資深大佬 : Kirsk

    假设对象与线程绑定 是不是一线程一对象 主说的执行环境更像是上下文 本质不还是对象吗

  • 資深大佬 : sun2920989

    我怀疑你在说 erlang.但是我证据不充分.

  • 資深大佬 : secondwtq

    你说的不是 Actor Model 么 …

  • 資深大佬 : kaneg

    貌似 golang 的 go 关键词是你想要的东西:语法层面提供异步执行的能力。

  • 主 資深大佬 : asanelder

    @wysnylc #1 666
    @lewis89 #2 就是想想而已
    @acmore #3 嗯, 放一个 executor 可以, 俺想看看有没有现成的方案
    @TypeError #4
    @kaneg #8 嗯, 不了解 go, 看来需要学习一下了
    @secondwtq #7 似乎就是这样啊

  • 資深大佬 : cs419

    想这个对象的代码是在哪个线程中执行的 ??
    摸摸脑袋,没看懂

    这里说 Java 中 对象 要由线程来执行
    那么 哪个语言中 对象不是由线程来执行

  • 資深大佬 : xuanbg

    面向对象本来很简单,就是逻辑和数据统一嘛,挺好的。结果呢,非要把自己搞成形而上学,导致问题一大堆。

  • 資深大佬 : 340244120w

    脏读 换读 重复读 不就是现实里的问题咩。。
    不过,你也可以程序限制成只有一条线程执行,就完全能和你以为的现实生活对应上了。

  • 資深大佬 : watzds

    现实中,对象挺难找的

  • 資深大佬 : jorneyr

    有没有那种库或语言可以把执行环境和对象进行绑定的啊…

    Qt 就是这么做的,这才真的难受,一不小心就把程序搞崩溃了!

  • 資深大佬 : ychost

    来个 async/await 语法就不会这么想了

  • 資深大佬 : passerbytiny

    现实中有行为的对象一般都是可自运行的(比如说人) —— 这种人是具有高度自我管理能力的人,把它放到办公桌前(甚至都不用放,给个眼神就行)它就会自启动工作模式。

    你确定存在上面那种“人”?

    执行对象的线程,本身就是对象,它们只是分工不同的对象,并不是割裂的两种东西。Java 里面线程就是用对象抽象的,我不知道主是怎么得出第一段那个对线程的看法的。

  • 資深大佬 : no1xsyzy

    说到 Actor model
    Pony 是面向对象的 actor model 异步
    对象里可以定义 method 和 behavior
    behavior 一旦调用就会建立新的…… “线程” —— 如果你高兴这么叫的话

  • 資深大佬 : acmore

    即使是 Actor 或者是 CSP 模型也一样,你写的代码只是被运行的规范,背后还是会有一堆执行者(操作系统线程)来运行这些规范。

  • 資深大佬 : misaka19000

    瞎类比

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具