首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    线程和锁

    虽然前面章节的大部分讨论只涉及一次执行单个语句或表达式时的代码行为,也就是说,通过单个线程,Java虚拟机可以同时支持多个线程执行。这些线程独立地执行对共享主内存中的值和对象进行操作的代码。线程可以通过拥有多个硬件处理器、对单个硬件处理器进行时间切片或对多个硬件处理器进行时间切片来支持。 线程由类表示。用户创建线程的唯一方法是创建该类的对象;每个线程都与这样一个对象相关联。当在相应的线程对象上调用start()方法时,线程将启动。 线程的行为,特别是在没有正确同步的情况下,可能会令人困惑和违反直觉。本章描述了多线程程序的语义;它包括一些规则,这些规则的值可以被多个线程更新的共享内存的读取所看到。由于该规范类似于针对不同硬件架构的内存模型,因此这些语义称为Java编程语言内存模型。当不会产生混淆时,我们将简单地将这些规则称为“内存模型”。 这些语义并没有规定多线程程序应该如何执行。相反,它们描述了多线程程序允许展示的行为。任何只生成允许行为的执行策略都是可接受的执行策略。

    02

    Python开发者是区块链采用的关键

    在整个职业生涯中,我经历过诸多不同的职位——从衍生品分析师到应用密码学家——但我本质上仍是一位软件工程师。我始终喜欢编码,就像许多其他标榜为“开发者”的人一样,我掌握着多种编程语言——包括 Java、Swift、C、Rust 等常客。因此,当我身为密码学家的那一面迷恋上分散式计算,继而深入研究比特币和门罗币等理念时,我身上的开发者一面便接下了学习区块链所需的新编程语言的挑战。通过此次经历,我立刻看到了一个重大的障碍:需要学习一种全新的编程语言。即使这种语言与现有语言存在相似之处(譬如 Solidity 类似于 JavaScript 语法),但它仍然可能限制能够为分散式操作系统构建应用程序的人数。

    01

    改变开发者编码思维的六种编程范式

    译者注:本文介绍了六种编程范式,提到了不少小众语言,作者希望借此让大家更多的了解一些非主流的编程范式,进而改变对编程的看法。以下为译文: 时不时地,我会发现一些编程语言所做的一些与众不同的事情,也因此改变了我对编码的看法。在本文,我将把这些发现分享给大家。 这不是“函数式编程将改变世界”的那种陈词滥调的博客文章,这篇文章列举的内容更加深奥。我敢打赌大部分读者都没有听说过下面这些语言和范式,所以我希望大家能像我当初一样,带着兴趣去学习这些新概念,并从中找到乐趣。 注:对于下面讲到的大多数语言,我拥有的经验

    010
    领券