Java创建线程池方式 在Java中,创建线程池主要使用java.util.concurrent包下的Executors类。这个类提供了几种静态工厂方法,用于创建和管理不同类型的线程池。...以下是一些常见的创建线程池的方式: 1.Fixed Thread Pool(固定线程池) 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。...创建方法:Executors.newFixedThreadPool(int nThreads) 2.Cached Thread Pool(缓存线程池) 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们...LinkedBlockingQueue 的主要特点就几个 容量可选 阻塞操作 非阻塞操作 线程安全 高效的并发性能 为什么说容量可选呢?...所以我们不推荐直接使用 Executors 来创建线程池,但是我们更推荐使用 ThreadpoolExecutor创建线程池。
我们在学线程的时候了解了几种创建线程的方式,比如继承Thread类,实现Runnable接口、Callable接口等,那对于线程池的使用,也需要去创建它,在这里我们提供2种构造线程池的方法: 方法一:...在这里插入图片描述 方法二: 通过 Executor 框架的工具类 Executors 来创建(不推荐) Executors 是java并发工具包中的一个静态工厂类,在JDK1.5时被创造出来,提供了丰富的创造线程池的方法...,通过它可以创建多种类型的线程池。...为何很多大厂都禁止使用Executors 创建线程池呢? ...,从而导致 OOM,其他的方法所提供的均是这种无界任务队列,在高并发场景下导致OOM的风险很大,故大部分的公司已经不建议采用Executors提供的方法创建线程池了。
最近在知乎看到一个问题,原问题如下: “ 很奇怪,为什么现在能找到自己手动创建vue脚手架的文章非常少,而且大家似乎对webpack4的热情并不高,对于想基于vue2.0+webpack4搭建一个脚手架的我来说资料真是少得可怜...中级前端或者更进阶者就有统筹全局的能力,类似于文章开头说的,能手动创建一个和公司项目需求深度定制的vue脚手架,而不再依赖于官方提供的vue-cli,一方面自己定制的脚手架哪出了问题自己心里清楚,从而也能培养自己前端架构的能力...这就是我为什么不推荐你使用vue-cli创建脚手架的原因(此文的受众是想要进阶中级的初级前端人员)。
记得把这些环境载入: 执行命令:source ~/.profile 2.3 在根目录下创建 go文件夹 我们把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹 执行命令(跳转到根目录...):cd ~ 执行命令(创建名称为go的文件夹):mkdir go 3、遇到锁的问题 3.1 遇到锁问题这样解决 命令模式出现如下提示: Could not get lock /var/lib/dpkg...### 下载完毕后,我们运行以下命令检查下载的镜像列表: 执行命令:docker images 7 、编译cryptogen 7.1 证书工具的使用 编译生成 cryptogen之前我们需要安装一个软件包...~/go/src/github.com/hyperledger/fabric 执行命令:make cryptogen 运行后系统返回如下结果即代表编译成功了 build/bin/cryptogen.../bin/cryptogen ps:我们在build/bin文件夹下就可以看到编译出来的cryptogen程序。
也就是说我们在build/bin文件夹下可以看到编译出来的cryptogen程序。...Count=1是说每个Template下面会有几个普通User(注意,Admin是Admin,不包含在这个计数中),这里配置了1,也就是说我们只需要一个普通用户User1@org2.example.com.../crypto-config.yaml 生成的文件都保存到crypto-config文件夹,我们可以进入该文件夹查看生成了哪些文件: tree crypto-config 2.生成创世区块和Channel...4.2创建Channel 现在我们要进入cli容器内部,在里面创建Channel。...先用以下命令进入CLI内部Bash: docker exec -it cli bash 创建Channel的命令是peer channel create,我们前面创建2.4创建Channel的配置区块时
可能有人会问, 官方不是有cryptogen工具批量生成MSP吗?...cryptogen实际是辅助测试工具,默认不同orderer,org都有不同的CA, 如果一个org要追加个peer或user, cryptogen就不管用了。...生产环境我们建议使用fabric ca全面管理证书, 如果想简单来而区块链组织,节点和用户基本不会变, cryptogen也没问题。 2. 架构 ? 我们在MSP已有类似提过。...server auth - client auth - key agreement expiry: 87600h l CSR涉及到CA根证书的创建...生成的内容是不包含这些attrs的,有点诡异,这些估计只能去跟源码了。
根CA, 中间CA 在msp文件夹下必须要有一个X.509格式的信任的CA证书. 貌似通过命令行cryptogen generate --config=....管理员 msp只是定义了管理员这个角色, 不代表它可以操作所有资源, 具体的采访权限需要由资源自己去定义。...Revoked取消的证书 暂时没见过这个文件夹, 应该放一些过期或取消的证书 节点身份 通常放的是节点的私钥 ?
https://docs.docker.com/compose/install/ 下载最新的稳定版Docker Compose 这一步速度非常慢,也可以选择用DaoCloud提供的下载,比较快,但是不知道为什么版本并没有更新到.../bootstrap.sh [进入路径,执行脚本文件] 最终下载完成后,会列出所下载的 docker 镜像,具体如下图所示: [下载的docker镜像] 路径中也会多出fabric-samples文件夹...同样的,进入 cryptogen 目录 go install 稍等一会儿,执行完毕,如果没有报任何信息,那么就是安装成功了,没有消息就是好消息。...安装完成后,进入到 $GOPATH/bin 目录,会多出如下 3 个文件夹。...为通道名称,不写默认为 mychannel,可以自己定义): .
cryptogen 适合用于测试开发环境,在生产环境建议使用动态的 CA 服务。 configtxgen :用于创建和查看排序节点的创世区块、通道配置交易等相关的工具。...generate 命令,生成结果将默认保存在 crypto-config 文件夹中: $ cryptogen generate --config=....然后我们使用 crypto-config.yaml 文件和 cryptogen 工具为其定义所需要的证书文件以供后续使用。...其中挂载的 crypto-config 文件夹就是之前搭建区块链网络时生成的。...而为什么我没有选择继续往区块链这一领域发展,理由很简单,因为个人比较喜欢云原生方向。
创建目录 在 GOPATH 目录下创建 Fabric 的文件夹: mkdir -p $GOPATH/src/github.com/hyperledger 3.2....创建Channel 现在我们的机器上正在运行对等节点和排序节点, 我们可以使用脚本创建用于在Org1和Org2之间进行交易的Fabric通道。...使用network.sh脚本在Org1和Org2之间创建通道并加入他们的对等节点,执行以下命令创建一个通道: ....默认情况下,脚本使用cryptogen工具创建证书和密钥,该工具用于开发和测试,并且可以快速为具有有效根信任的Fabric组织创建所需的加密材料。...,keystore 文件夹中存放着私钥。
1.生成认证证书 需要复制crypto-config.yaml到目录 cryptogen generate --config=....-channelID:后边接通道名称,这里定义的是系统通道的名称,建议全小写并且没有特殊字符; -outputBlock:后边接创世区块输出的文件路径,路径中目录如果不存在,需提前创建; cd $HOME...工具的相关配置入口; Organizations: Name:在网络中的名称 ID:MSP中的唯一ID MSPDir:msp的相关目录 Policies:读写策略 AnchorPeers:锚节点配置 3.创建通道配置文件.../channel-artifacts/channel.tx -channelID mychannel 4.创建组织锚节点配置文件 创建Org1和Org2阻止锚节点配置文件 configtxgen -profile...5.启动docker容器 复制scripts文件夹到目录 需要复制docker-compose-cli.yaml和base文件夹到目录 并删除这几个文件里的:$IMAGE_TAG。
所以不建议你去除 Docker 转而使用传统的本地编译安装方式。我们仍然保持使用 Docker 在每个物理节点上,省去软件的编译和安装环节。 2.1....生成证书和创世区块 这里我们需要几个命令(configtxgen configtxlator cryptogen),官方的安装方式: curl -sSL https://goo.gl/byy2Qj...创建配置文件 3.1.1. crypto-config.yaml 创建证书 OrdererOrgs: - Name: Orderer Domain: example.com...生成证书 命令 cryptogen generate --config=..../crypto-config.yaml 演示 root@8f467a88de99:~/netkiller# cryptogen generate --config=.
所以不建议你去除 Docker 转而使用传统的本地编译安装方式。我们仍然保持使用 Docker 在每个物理节点上,省去软件的编译和安装环节。 2.1. ...生成证书和创世区块 这里我们需要几个命令(configtxgen configtxlator cryptogen),官方的安装方式: curl -sSL https://goo.gl/byy2Qj...创建配置文件 3.1.1. crypto-config.yaml 创建证书 OrdererOrgs: - Name: Orderer Domain: example.com...生成证书 命令 cryptogen generate --config=..../crypto-config.yaml 演示 root@8f467a88de99:~/netkiller# cryptogen generate --config=.
vendor文件夹。...另外还有一些小地方,是因为引用的国密包对象,而代码里面又使用到了系统包对象,所以造成对象的不匹配,只需要简单修改即可。...搜索vendor文件夹,关键字studyzy,找到所有需要修改国密引用的第三方包,并将这些包转移到third_party文件夹下,并对包名进行更正。...fabric-peer studyzy/fabric-orderer studyzy/fabric-tools studyzy/fabric-ca 二进制文件:configtxgen configtxlator cryptogen...正宗的国密标准关于TLS部分比较复杂,只是我这里提到的简单替换是不符合国密TLS部分的规范的,所以如果别人有另外的正宗的国密改造的节点,那么和我们这里改造的节点是无法正常通讯的,所以说这里只是实验性质的练手项目,不建议用于生产
我们前面关于Fabric的所有文章中用到的例子都没有CA Server,都是由cryptogen这个工具根据crypto-config.yaml而生成的。...//www.cnblogs.com/studyzy/p/7437157.html 1.修改docker-compose文件,增加CA容器 我们就以给org1这个组织增加CA容器为例,打开e2e_cli文件夹中的...HOME/ca fabric-ca-client enroll -u http://admin:adminpw@localhost:7054 这个时候我们可以去$HOME/ca目录,看到CA Client创建了一个...fabric-ca-client-config.yaml文件和一个msp文件夹。...admincerts文件夹,但是CA Client在生成的时候并没有这个文件夹,所以我们需要从signcerts这个文件夹中拷贝一个过来,运行以下命令: mkdir devin/msp/admincerts
我们来介绍cryptogen这个命令 2. cryptogen命令生成相关密钥,证书和MSP 执行以下命令行提示生成两个组织 [root@localhost first-network]# cryptogen...具体生成了什么内容了, 我们看下当前目录下的crypto-config文件夹: [root@localhost crypto-config]# pwd /mnt/sda3/fabric-samples/...31.125 CST [common/tools/configtxgen] doOutputBlock -> INFO 00b Writing genesis block channel-artifacts文件夹下生成了...创建通道和加入通道 区块链网络有了, orderer网络管理节点有了, peer是启动了,但没加入网络和通道,以下命令行验证下(验证完后请exit退出docker容器命令行)。...escc 2018-08-30 18:18:12.800 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc 为什么初始化链码的时候要和
然而,作为开发人员,我们的程序不可避免会有操作 /xxx/xxx 文件的需求,最常见的如写日志,日志要输出到 /data/log/,因为路径不可执行写操作,无法创建对应的日志路径,会报日志文件不存在,尝试手动创建...基本思路关闭完整性保护机制(SIP)将具有读写权限的文件夹软链到根路径指定文件夹为什么关闭 SIP 后,还要创建 links,不应该是直接就能读写根路径?...下面介绍具体操作和踩坑点,看看为什么如此简单的问题会卡在许多程序员?...,从而将分区和该文件夹关联起来,访问这个文件夹就相当于访问这个分区了。...参考文献关于苹果只读文件系统如何解决 command+r 不生效解决关闭SIP后仍无法创建文件夹如何在根路径创建links文件
UI自动化平台(一) 一、为什么是 Django 二、Pycharm创建Django项目讲解 1、新建一个django项目 三、django项目的运行 四、项目文件讲解 一、为什么是 Django...如果不选中那么admin这个会在setting.py的url中注释掉,同时在setting.py文件中的INSTALLED_APPS的变量中添加django.contrib.admin。...下图是django项目创建后,在本地项目文件夹中的目录: 三、django项目的运行 前台:点击PyCharm右上角绿色小三角运行项目,浏览器输入127.0.0.1:8000或者localhost...,该文件夹是项目自动生成的,相当于项目容器 init.py:这个文件是生成的空文件,用它标识一个目录为Python的标准包即模块包,如果没有那么他所在的文件夹就是个普通的文件夹不能被其他模块导入 asgi.py...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
() 创建文件,如果存在这样的文件,就不创建了,返回false(该方法会抛异常) public boolean mkdir() 创建文件夹,如果存在这样的文件夹,...就不创建了,返回false(该方法不会抛异常) public boolean mkdirs() 创建文件夹,如果父文件夹不存在,会帮你创建出来,如果存在这样的文件,...就不创建了,返回false(该方法不会抛异常) 注意: 到底要创建文件还是文件夹,调用者最清楚,所以方法不要调用错了。...a:如果你创建文件或者文件夹忘了写盘符路径,则默认在Java的项目路径下。...b:Java中的删除不走回收站。 c:要删除一个文件夹,请注意该文件夹内不能包含有文件或者文件夹。
JDK(java官方)内置对象-高级-File 1.为什么要学习File ? 讲解IO流之前为什么先讲解异常和File类呢? 因为File表示的是IO流将来要操作的文件,所以我们需要学习File类。...,我们再来理解文件和目录路径名的抽象表示形式这句话的意思: 仅仅是一个路径的表示,不代码具体的事物一定是存在的。...创建文件夹如果存在这样的文件夹,就不创建了 public boolean mkdirs() 创建文件夹,如果父文件夹不存在,会帮你创建出来,如果存在就不创建了 2.2.2.1.1. mkdir()...返回false 【思考题】:请在d盘的test目录下创建一个b.txt文件 ? 【思考题】:我想要在d盘的aaa文件夹下创建一个bbb文件夹,怎么做呢? 代码实战: ?...【开发总结】: 你到底要创建文件还是文件夹,你最清楚,方法不要调错了。
领取专属 10元无门槛券
手把手带您无忧上云