Kilim要解决的问题 Kilim协程框架中最核心需要解决的问题: 如何暂停处理当前任务,转而处理其他任务?如何恢复任务继续执行? 也即如何实现协程本身的 yield / resume的语义特性。Kilim的解决方案概括的讲,Kilim框架在实现这个语义特性时,干了以下几个事情: 利用字节码技术(基于ASM字节码框架),将普通代码转化为支持协程的代码;调用P
转载 2023-06-08 09:38:15
155阅读
# Java Kilim 使用指南 ## 简介 在本文中,我将向你介绍如何使用 Java Kilim,一个用于并发编程的轻量级框架。Kilim 基于协程的思想,能够简化线程的使用,提高代码的可读性和性能。 ## 准备工作 在开始使用 Kilim 之前,你需要先安装 JDK,并确保你已经熟悉了 Java 编程的基础知识。 ## Kilim 的安装 首先,你需要下载 Kilim 的 JAR 文件
原创 2024-01-19 12:33:08
56阅读
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、
## kilim-java:并发编程的新选择 ### 引言 在当今计算机系统中,多线程编程是必不可少的一部分。线程的并发执行可以充分利用多核处理器和多任务操作系统的性能,提高程序的执行效率和响应速度。然而,多线程编程也是一项复杂的任务,容易出现各种问题,比如线程不安全和死锁等。为了简化多线程编程,提高程序的可靠性和可维护性,许多并发编程框架和库被开发出来。其中之一就是kilim-java
原创 2023-08-05 15:13:04
48阅读
# 实现Java Kilim的步骤与代码注释 ## 1. 引言 在本文中,我将向你介绍如何实现Java KilimJava Kilim是一种轻量级的并发框架,它可以帮助开发者编写高效的并发程序。作为一名经验丰富的开发者,我将向你展示整个实现过程,并提供每个步骤所需的代码和注释。 ## 2. 实现步骤 下面是一张表格,展示了实现Java Kilim的步骤。 | 步骤 | 描述 | | -
原创 2024-01-31 03:47:55
52阅读
简介Github地址kilim 1.0:https://github.com/kilim/kilim  kilim 2.0:https://github.com/nqzero/kilim 特性1.Kilim是一个Java消息传递框架,它提供了超轻量级的线程和工具,可以在这些线程之间进行快速、安全、零复制的消息传递。2.Kilim的核心在于Mailbox跨线程共享内存,没有锁或同
转载 2023-08-25 11:15:06
66阅读
# Java Kilim Maven ## 1. Introduction to Kilim Kilim is a framework for writing scalable, asynchronous, and concurrent applications in Java. It provides lightweight thread-like constructs called "fi
原创 2024-01-10 08:48:34
49阅读
 package com.study; import java.util.Scanner; public class Test { public static void main(String[] args) { //目标:完成飞机票的价格计算 //1、让用户输入机票原价,月份,仓位类型 Scanner sc = new Sca
转载 2023-08-19 20:13:02
3阅读
我最近在实现一个基于Kilim的HttpClient,在处理响应body特别大的情形下遇到了kilim的一个BUG,有必要记录下。问题是这样,Kilim将连接封装为EndPoint对象,EndPoint有个方法fill用于从管道读数据到缓冲区,并且可以指定希望至少读到多少个字节(atLeastN)才返回。那么在进入此方法的时候会判断缓冲区是否有足够空间容纳atLeastN个字节,如果没有,则创建一
原创 2010-11-03 00:44:00
562阅读
Kilim是一个Java的actor框架,让你可以在JVM里使用基于协程的actor模型,bluedavy曾经介绍过,这里不再赘言。这篇blog的目的在于分析下kilim实现的基本原理,看看怎么在JVM上实现协程。在一些语言层面上支持协程的语言,如lua、ruby,都是直接在VM级别支持协程,VM帮你做context的保存和恢复。JVM没有提供这样的指令来保存和恢复方法栈的状态,因此kilim的实
原创 2010-09-17 12:05:00
1265阅读
首先要明确,kotlin中的协程并不像很多人想的那样神奇,它本质上跟线程池没有任何区别,它也是用线程池实现的,并且,协程这种东西并不是说语言特有,像python,go等语言有协程,很多人认为必须是语言加持才有这个东西,但是并不是这样,java同样有协程,不过由于java比较保守,只有一些开源的项目实现,也有官方实现,但还未正式使用。协程完全是一个语言层级之上的东西,kotlin就是如此,像go这种
前段时间对kilim的当前版本做了一些改进,集中在nio调度器这一块。Kilim新版本引入了nio调度器,可以跟非阻塞IO结合在一起,从这个版本开始,kilim才真正具有实用性。协程只有跟非阻塞IO结合起来才能发挥威力啊。但是Kilim的默认的nio调度器还只是使用一个nioworker做调度,这跟现有的NIO框架采用多个nioworker来提升效率比较起来相对落伍。我改进了NioSelector
概述maven仓库就是用来存储jar包的,在maven中,这个jar称之为构件,每个构件都有自己的坐标。maven仓库根据坐标进行定位构件步骤:从settings.xml配置文件中,找localRepository 根据坐标拼接路径groupId+artifiedId+version找到构件的目录根据artifiedId+version+packaging找到文件maven仓库是分级的,有本地仓库
转载 2024-05-08 12:18:30
94阅读
Kilim 是一个用于在Java 协程框架,Kilim协程框架的结构图如下:1. Task可以认为Task 就是Actor,使用方式和Java Thread 基本相同,只是继承的为Task,覆盖的为execute 方法,启动也是调用task 的start 方法。 1. public 2. if (scheduler == null) { 3.
角色模型角色模型是一种不同的并发进程建模方式。与通过共享内存与锁交互的线程不同,角色模型利用了 “角色” 概念,使用邮箱来传递异步消息。在这里,邮箱 类似于实际生活中的邮箱,消息可以存储并供其他角色检索,以便处理。邮箱有效地将各个进程彼此分开,而不用共享内存中的变量。角色充当着独立且完全不同的实体,不会共享内存来进行通信。实际上,角色仅能通过邮箱通信。角色模型中没有锁和同步块,所以不会出
转载 精选 2010-06-28 14:40:29
710阅读
Java 使用RMIJava使用序列化的方式,可以实现远端的方法调用,在分工合作时非常方便。本文记录使用java标准库实现rmi一、服务端结构.├── pom.xml├── src│ ├── main│ │ └── java│ │ └── hello│ │ ├── HelloImpl.java│ │ ...
转载 2021-07-28 17:46:21
506阅读
    这节我们首先体验一下用java编写的程序。也让大家过把代码瘾,呵呵。目前世界上大部分的软件教程有一个习惯,最开始时总要输出一个字符串“HelloWorld”。我们也是不能免俗啊,也要输出这么一段话。    实践:    1、单击“开始”――>运行――>CMD,进入DOS系统。 &
转载 2024-02-05 07:53:20
101阅读
ULID全称Universally Unique Lexicographically Sortable Identifier,直译就是通用唯一按字典排序的标识符,原始仓库是https://github.com/ulid/javascript,由前端开发者alizain发起,基于JavaScript语言。从项目中的commit历史来看已超5年,得到充分的实践验证。ULID出现的原因是认为主流的UUI
转载 2023-09-25 09:45:20
249阅读
package com.ilike.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.ServerSocketCha
转载 2024-05-11 16:19:31
24阅读
JDBC一、JDBC简介二、JDBC原理二、 JDBC使用三、JDBC小结四、JDBC封装 一、JDBC简介JDBC 通过Java代码来操作数据库实际工作中大部分的数据库操作,都是通过代码来完成的.格子编程语言都可以操作数据库,主要是数据库提供了各种版本的API(一组函数 / 一组类),调用这些API就可以操作数据库。但是我们要注意:数据库的种类有许多,不同的数据库,提供的API不太一样(因为不
转载 2024-08-18 22:24:42
6阅读
  • 1
  • 2
  • 3
  • 4
  • 5