草庐IT

PgSQL无法连接的问题

全部标签

ThreadLocal的内存泄露问题

ThreadLocal的内部实现在每一个线程Thread对象中,都维护了一个ThreadLocalMap对象。ThreadLocalMap中又维护了一个kv形式的Entry对象,key指向了当前ThreadLocal对象,value就是我们实际在ThreadLocal中存储的值。注意,这里的Entry中的key存放是ThreadLocal的弱引用。实现指的是强引用,虚线指的是弱引用。其实际上,ThreaLocal本身是不存储值的,我们在使用其对应的set、get方法时,都是操作的其对应的ThreadLocalMap对象。为什么会出现内存泄露?从上述可以看到,在Entry中的key存储的Thre

多线程问题:为什么不应该使用多线程读写同一个socket连接?

问题的产生经典的单reactor多线程模式采用的是用主线程处理连接事件以及socket读写事件,业务逻辑的处理则是让线程池里的线程各自竞争处理。既然多线程这么方便,为什么不让线程池里的线程也参与到read和send这个过程中呢?在发送数据的过程中,即使TCP的发送缓存满了,我们也可以记录下当前成功发送了多少字节,然后再次注册一个EPOLLOUT事件,只需等待下次可写事件,继续让子线程发送数据即可,岂不是美哉?解释陈硕大佬的解释对于TCP,通常多线程读写同一个socket是错误的设计,因为有shortwrite的可能。假如你加锁,而又发生shortwrite,你是不是要一直等到整条消息发送完才解

homebrew和git的安装|部署本地Git与Github连接(SSH)|macbook M1

0前言(目的导向直接跳过去年换了新设备macbookM1,因为在知乎实习的时候用了苹果完完全全被它的触控板吸引住了,研一结束后打算重拾代码啦,为了更好地实现代码的写协作和云端备份,当然是要先配置好git啦~我首先看了git官网的下载说明,非常地繁琐:第一步「Installhomebrewifyoudon’talreadyhaveit」,我去到homebrew官网:https://brew.sh/下载homebrew,在本地终端执行命令会发现进行地非常慢,而且中间会有很多连接不上网站的情况。所以选择用回老法子,国内镜像hhh1步骤1.1安装homebrew打开苹果自带terminal终端,输入以

linux远程开发——网络通信(客户端与服务器建立连接)

目录一、前言二、网络编程三要素1、IP地址1)IP地址概念2)通过IP地址访问CSDN官网3)本地回环IP地址127.0.0.12、端口号3、通信协议1)通信协议概念2)TCP和UDP三、网络通信基础编程1、编程流程2、建立本地服务器1)socket()初始化网络2)bind()函数3)listen()监听函数4)accept()函数5)服务器全部代码3、建立客户端4、客户端连接服务器测试一、前言        本文介绍网络编程的基础知识,使用VisualStudio2019在linux本地搭建一个服务器,将客户端与本地服务器连接起来,通过客户端向服务器发送信息,测试服务端能否收到信息。在编程

使用软连接的方式修改Docker数据存储目录

文章目录前言一、迁移步骤前言Docker安装的东西多了或者目录分配大小未提前规划好,就容易出现磁盘空间不足的问题,可以采用软链接的方式迁移数据目录空间。一、迁移步骤要使用软连接的方式修改Docker数据存储目录,需要执行以下步骤:1、使用systemctlstopdocker命令停止Docker服务;2、创建文件夹:mkdir/home/docker(/home/docker为新磁盘目录名);3、移动/var/lib/docker/目录到新目录中:mv/var/lib/docker/*/home/docker;4、使用rm-rf/var/lib/docker命令删除原有的Docker数据目录;

ruby-on-rails - 无法在 Rails 4 中使用 bundle install 命令安装 capybara-webkit

在我的Rails4应用程序中执行命令bundleinstall时出现以下错误。>ruby-vruby2.1.8p440(2015-12-16revision53160)[i386-mingw32]>rails--versionCouldnotfindgem'capybara-webkitx86-mingw32'inanyofthegemsourceslistedinyourGemfileoravailableonthismachine.Run`bundleinstall`toinstallmissinggems.我的Gemfile........group:development,:l

ruby-on-rails - 无法使用 Windows 在 Rails 中安装 JSON gem

我正在执行捆绑安装,除JSON之外的所有gem工作正常,当它到达JSONgem时我收到此错误。Installingjson(1.6.1)withnativeextensionsc:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in`rescueinblockinbuild_extensions':ERROR:Failedtobuildgemnativeextension.(Gem::Installer::ExtensionBuildError)c:/Ruby192/bin/ruby.exeextconf.rbch

ruby - Vim 的 Ruby 插件问题

我刚刚安装了Vim,每当我打开ruby​​文件时,我都会遇到这些错误:ErrordetectedwhileprocessingC:\Programfiles(x86)\Vim\vimfiles\ftplugin\ruby.vimline:76Encoding::ConverterNotFoundError:codeconverternotfound(UTF-16LEtoASCII-8bit)line:93E121:Undefinedvaraible:s:ruby_pathE15:Invalidexpression:s:ruby_pathline:76NameError:uninitia

ruby - 无法运行 Jenkins Build - bundle : "command not found"

我目前正在尝试为我的一些cucumber任务运行jenkins构建。我所有的gem都是使用Bundler安装的。Gem存储在vendor文件夹中。但是,当我尝试在执行shell构建步骤中运行bundleinstall--deployment时,出现以下错误:StartedbyuseranonymousBuildinginworkspace/Users/Shared/Jenkins/Home/jobs/cukes/workspace[workspace]$/bin/sh-xe/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson44

ruby 运算符重载问题

出于娱乐目的,我一直在摆弄ruby​​和opengl,因此我决定编写一些3d矢量/平面/等类来完善一些数学。简化示例:classVec3attr_accessor:x,:y,:zdef*(a)ifa.is_a?(Numeric)#multiplybyscalarreturnVec3.new(@x*a,@y*a,@z*a)elsifa.is_a?(Vec3)#dotproductreturn@x*a.x+@y*a.y+@z*a.zendendendv1=Vec3.new(1,1,1)v2=v1*5#produces[5,5,5]一切都很好,但我也希望能够写作v2=5*v1这需要向Fixn