timethinker 最近的时间轴更新
timethinker

timethinker

V2EX 第 449603 号会员,加入于 2019-10-28 16:09:52 +08:00
为啥国外各大互联网公司都在发推说自己?
  •  1   
    Twitter  •  timethinker  •  31 天前  •  最后回复来自 WOLFRAZOR
    29
    好像可以直接上 V2EX 了,不需要科学上网了?
    Chamber  •  timethinker  •  112 天前  •  最后回复来自 mop123
    2
    双 11 推荐一款性价比高一点的咖啡机?
    咖啡  •  timethinker  •  318 天前  •  最后回复来自 qwe520liao
    41
    C#是否有比较稳定活跃的开源网络框架?
    C#  •  timethinker  •  2021-08-19 17:04:35 PM  •  最后回复来自 qwe520liao
    9
    起床后短暂的陌生感
    生活  •  timethinker  •  2021-06-01 23:22:23 PM  •  最后回复来自 MaiKuraki
    37
    timethinker 最近回复了
    5 天前
    回复了 MeloForsaken 创建的主题 程序员 菜鸟提问,有关 Threadlocal 的问题
    1 、如果你没有及时清理 ThreadLocal 中存放的变量,线程实例也没有销毁,那么当这个线程实例执行下一个任务时,如果任务中有访问到同一个 ThreadLocal 存放的变量,就会造成一些状态依赖问题,可能会破坏依赖这些状态的代码逻辑。

    2 、一般线程池有一个缓存队列用来缓存任务,当有可用的线程时,就会取出队列中的请求交给线程执行,取决于线程池的相关设置和策略,这部分在创建线程池的时候都是可以设置的。相关介绍: https://www.baeldung.com/thread-pool-java-and-guava

    3 、同上线程池可以是同一个实例(一组线程),也可以是不同的实例(多组线程),取决于配置。

    4 、这个跟使用语言的框架有关,比如 Java 通常使用 Spring MVC 或者 WebFlux 等等,现在的框架数不胜数,不过我建议你最好看一下 HTTP 协议相关的内容。

    5 、如果是 HTTP 协议相关的,《 HTTP 权威指南》值得一读,其实不一定要买书,很多在线的网站资源都能够系统的学到一些知识,虽然比较零散。
    11 天前
    回复了 wangxiaoaer 创建的主题 问与答 工作流是否支持可选的节点分发功能
    我已经很久没有关注这一块了,开源的可以选择的不多,基本上都是 Activiti 系的,Flowable 看起来比较活跃,Camunda 是魔改版,提供很多特性,国产的很多工作流引擎更加符合国内的审批流程。

    如果是我的话,可能会选择 Flowable 来进行定制,不过最终这一块还是得自己多比较一下才能知道哪一个更适合当前的业务。
    11 天前
    回复了 wangxiaoaer 创建的主题 问与答 工作流是否支持可选的节点分发功能
    1 、工作流引擎实际上是没有用户这个概念的,工作流说白了只是一个状态机的实现,这个实现帮我们搭建了一个最底层的基本平台。我们所说的用户和审批只是在上面进行了业务封装而已。因此你可以设计一种数据结构来表示用户来自哪里以及他的一些相关的信息,然后将数据存放到流程实例当中。

    2 、关于审批签名,这个属于审批流程的概念,比如“会签”与“或签”,还有转交、加减签、回退审批等等,同上,工作流引擎也并不知道这些概念,这些都是上层封装的,只不过审批的场景太过于常见,因此在工作流引擎和最终的应用之间,建立了一套审批的抽象和机制,所有实现这些抽象的数据结构和行为,都是需要预先定义的(自定义封装),然后提供给外部基于这些抽象的编程接口。

    3 、工作流引擎的流程实例提供了一个上下文环境,可以存放各种的变量信息,你可以通过设定各种各样的变量和条件判断来执行逻辑以及分支跳转。但是不要忘了,你使用工作流的目的是什么?工作流应该仅仅只处理流程上的某一个环节通过与否,以及下一个环节的状态跳转。其他的完全可以通过外部的 CRUD 管理系统来提供更多的操作内容。因此需要外部应用与工作流进行集成。试想一下,如果没有工作流,没有审批,你如何实现这个功能?答案可能就是自己建几张表,然后提供一些 CRUD 的接口而已。

    4 、同我说的第 2 点。

    5 、同我说的第 2 点。至于回到申请用户那边,说白了也只是在流程设计里面有一个环节需要发起人来完成而已。
    遥远的超新星爆发带来的电磁风暴导致了机房内路由器主板上某个元件电路发生了短路进而引发了短暂的阻塞从而影响了网络。
    17 天前
    回复了 kqq19930511 创建的主题 Java jpa update 和 delete 之前都会 select 一次
    这是因为框架机制的原因导致的,Hibernate 使用了一种被称之为工作单元模式( Unit of Work ),与数据库的事务进行对应,这样就会对实体的状态进行追踪,在这种机制下就会产生一个问题:如果没有这条数据,会发生什么?程序无法推测你的意图,有的场景下当数据不存在会导致一致性问题,也有的场景下存在“不关心有没有这条数据,如果有的话就删掉”这种逻辑。后者更偏向于面向数据库编程的过程式逻辑。

    这种工作机制不适合用于进行批量处理的场景,它更适合用于处理一些小范围的 OLTP 业务,带来的好处也是明显的,一级缓存避免了在接下来的事务范围中对同一个实体进行重复查询,也不需要显式的调用底层的数据操作,你只需要简单的查询对象,修改对象,在工作单元结束时(提交事务),它会根据对象现在的状态自动调用底层的数据操作,执行对应的 SQL 语句。

    所以很多人用 JPA 会觉得很别扭,本质上是因为思考的方式跟它的工作机制存在差异,理解工具的处理机制是很重要的,因为这样才能让你更好的使用它。如果你写代码的逻辑思维处于那种过程式的增删改查,那么 MyBatis 或许更简单直观。

    我个人认为,Hibernate 与 MyBatis 之间,不存在哪一个工具更好的这种说法,完全取决于你编写代码的模式,选一种你认为适合当下的工具就行,使用工具的目的是为了提升效率,仅此而已。
    19 天前
    回复了 PendingOni 创建的主题 程序员 [疑惑]-C#中一个奇怪的现象
    C#的 Socket 光是异步的写法目前就有 3 种编程模型:

    APM:即 BeginXXX 和 EndXXX 配对使用的异步编程模型。
    EAP:即基于事件的异步模式,也就是使用 SocketAsyncEventArgs 配合 Socket 的 XXXAsync 系列方法使用。
    TAP:既基于任务的异步模式,最新的使用方法,不再需要 SocketAsyncEventArgs ,直接返回 Task/ValueTask 配合异步上下文使用 await/async 语法。
    @K1W1 这个跟 5G 手机壳有异曲同工之妙。
    28 天前
    回复了 CodeXx 创建的主题 Java 发现一个 Java 代码耗时统计的问题
    建议楼主先把计算的结果缓存到一个数组内,最后再打印出来数组内的结果,看看是否可以得到心中想要的答案,就能确定问题出在什么地方了。
    28 天前
    回复了 CodeXx 创建的主题 Java 发现一个 Java 代码耗时统计的问题
    @fzdwx 之前的时间都是单纯的计算两个时间差,并没有把每次的输出计算在内,但是最后的输出包含了循环内的 println 语句,所以总时间跟之前的时间存在悬殊。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2144 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:47 · PVG 22:47 · LAX 07:47 · JFK 10:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.