- python 如何解析PDF文件,并将其翻译为其他语言
openwin_top
python编程示例系列pdfpython
要解析PDF文件并将其翻译为其他语言,可以使用Python中的PyPDF2库和baidu_trans库。以下是解析PDF文件并将其翻译为其他语言的基本步骤:安装PyPDF2和baidu_trans库pipinstallPyPDF2baidu_trans可以使用PyPDF2库中的PdfFileWriter和PdfFileMerger类。以下是将翻译后的文本重新组织为PDF文档的代码示例:import
- python解析pdf文件
irisMoon06
pythonpdfmicrosoft
先安装PyPDF2,据说这是目前最好的解析pdf的包pipinstallPyPDF2PDF文件分割、拼接importosfromPyPDF2importPdfFileWriter,PdfFileReaderdefclear_dir(dir_path): """清空目录下的文件""" names=os.listdir(dir_path) fornameinnames: file_path
- JavaIO编程二:字节流与字符流
嘵奇
JavaIO编程java
知识流主要是指的数据的处理方式,以及目标内容的处理机制,所有的流部分分为输入流和输出流,在java.io包中针对输入流和输出流分为两种:字节操作流:OutputStream(字节输出流)、InputStream(字节输入流)字符操作流:Writer(字符输出流)、Reader(字符输入流)不管使用哪一种操作流,本质上的操作流程都是类似的:通过File类设定要操作的文件路径或者IP地址通过字节流或字
- python异步tcp代理服务器
在学02
pythontcp/ip网络
importasyncioclassTcpServer:def__init__(self,addr,proxy_addr):self.addr=addrself.proxy_addr=proxy_addrself.server=Noneasyncdefget_connect(self):reader,writer=awaitasyncio.open_connection(*self.proxy_a
- Unity使用iTextSharp导出PDF-02基础结构及设置中文字体
心前阳光
#Unity插件使用unitypdf游戏引擎
基础结构1.创建一个Document对象2.使用PdfWriter创建PDF文档3.打开文档4.添加内容,调用文档Add方法添加内容时,内容写入到输出流中5.关闭文档usingUnityEngine;usingiTextSharp.text;usingSystem.IO;usingiTextSharp.text.pdf;usingSystem;//项目文件夹中生成一份pdfpublicclassP
- Java 高并发编程——锁机制
AI天才研究院
Python实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介1980年代末,工程师在实验室中进行程序设计时,由于多个CPU、多道程序环境、内存碎片、中断等原因造成程序运行效率低下,而出现了锁(lock)、互斥锁(mutexlock)、条件变量(conditionvariable)、信号量(semaphore)、读写锁(reader-writerlock)、线程局部存储(thread-localstorage)等各种锁机制
- 解决TypeError: __init__() takes 1 positional argument but 2 were given
求不脱发
Pytorch深度学习人工智能
问题描述:如下图,在使用torch.nn.Sigmoid非线性激活时报错源代码:classtestrelu(nn.Module):def__init__(self):super().__init__()self.sigmoid=Sigmoid()defforward(self,input):output=self.sigmoid(input)returnoutputwriter=SummaryWr
- JMeter使用BeanShell将数据写入CSV文件(引用deepseek)
试着
jmeterjmeter开发语言测试工具程序人生
在JMeter中,你可以使用BeanShell脚本将数据写入CSV文件。以下是一个示例脚本,展示了如何通过BeanShell将数据写入CSV文件。1.添加BeanShell取样器首先,在JMeter中添加一个BeanShellSampler。2.编写BeanShell脚本在BeanShellSampler中,编写以下脚本:importjava.io.FileWriter;importjava.io
- JMeter通过BeanShell创建CSV文件
试着
jmeterjmeter测试工具java程序人生学习方法
在JMeter中通过BeanShell创建CSV文件,可以使用以下脚本实现:importjava.io.FileWriter;importjava.io.IOException;//定义CSV文件路径(建议使用绝对路径)StringcsvFilePath="C:/jmeter_test/data/output.csv";//Windows路径示例//StringcsvFilePath="/tmp/
- Itext 源代码分析
软件猫
Itextitextpdf
PdfViewerPreferences类体系PdfReaderPdfWriterPdfStamer(水印)Document类体系子类PdfDocumentPdfObject类体系pdf对象,Pdf文件由Pdf对象构成,大量的子类,不详述参考资料:
- request和response
sjtu_chenchen
java技术经验requestresponse
请求响应流程图response对象1.responseresponse是响应对象,用来在Servlet的service()方法中向客户端响应数据。response的功能如下:*设置响应头*发送状态码*设置响应正文*重定向2.response响应正文*ServletOutputStreamgetOutputStream():用来向客户端响应字节数据;*PrintWritergetWriter():用
- gorm 自定义日志自定义接入三方日志
JwCode
Go数据库gormgo自定义
先看看gorm自己带的日志原文https://gorm.io/zh_CN/docs/logger.htmlnewLogger:=logger.New(log.New(os.Stdout,"\r\n",log.LstdFlags),//iowriter(日志输出的目标,前缀和日志包含的内容——译者注)logger.Config{SlowThreshold:time.Second,//慢SQL阈值Lo
- 导出csv(用excel打开不乱码)
qq_29540975
exceljavapython
//使用BufferedWriter以UTF-8编码写入输出流try(OutputStreamoutputStream=response.getOutputStream();OutputStreamWriteroutputStreamWriter=newOutputStreamWriter(outputStream,"UTF-8");BufferedWriterwriter=newBuffered
- Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法
wohu007
Gogolang函数作为变量
函数在Go语言中属于“一等公民(First-ClassCitizen)”拥有“一等公民”待遇的语法元素可以如下使用可以存储在变量中;可以作为参数传递给函数;可以在函数内部创建并可以作为返回值从函数返回;1.函数可以存储在变量中var(myFprintf=func(wio.Writer,formatstring,a...interface
- 倍福--CSV、TXT文件读写操作
光怪陆离的节日
倍福倍福TwinCAT
本文测试TwinCAT3实现CSV、TXT文件读写。即在机器运行中的数据保存在远程电脑或本地电脑的硬盘中。操作流程1.1.库文件引用1.1.1.Lib_FileOperation需要引入该文件,包括了文件读写的相关功能块,如下所示:1.2.功能块介绍1.2.1.FB_WriteReadFileTXT_2该功能块是以CSV或TXT格式读写文件的功能块1.2.2.Demo程序首先实例化功能块和相关读写
- 图苑,DeepSeek生成
图苑
webpack前端node.js
importorg.opencv.core.Core;importorg.opencv.core.Mat;importorg.opencv.core.Size;importorg.opencv.videoio.VideoCapture;importorg.opencv.videoio.VideoWriter;publicclassVideoSubtitles{publicstaticvoidmai
- 【JavaSE】文件 IO(操作文件)
Undefined name!
JavaSEjava文件操作文件IO
文章目录1.操作文件系统File常用属性及方法1.1属性1.2构造方法1.3方法2.操作文件内容——数据流2.1字节流2.2字符流2.2.1Reader2.2.2Writer操作系统会将硬件设备和软件资源都抽象为”文件“,统一进行管理。大部分情况下,文件指的是硬盘的文件,即对硬盘数据的抽象,因此可以通过文件来操作硬盘。计算机上的文件通过文件系统来进行组织和管理,操作系统通过目录的结构来组织文件。文
- 【Logrus】以go代码实现的结构化日志记录为例,进行讲解,日志级别,不同日志输出位置,hook
{⌐■_■}
golang驱动开发开发语言
file.gopackagelogsimport"os"/*实现了标准文件日志写入器。---将日志写到文件*/constLOGPATH="runtime/logs/myLogs.log"typefileWriterstruct{*os.File}func(s*fileWriter)Flush(){s.Sync()}//文件日志写入器,并在包初始化时注册为"file"类型。funcnewFileWr
- 多语言教学材料生成:技术实现与业务价值分析
二进制独立开发
非纯粹GenAIGenAI与Python数据挖掘人工智能自然语言处理神经网络python语言模型学习方法
文章目录引言技术背景与需求分析多语言教学材料的业务需求技术挑战技术实现:LangChain与Writer模型的结合LangChain框架简介Writer模型的多语言生成能力实现多语言教学材料生成的代码示例多语言语音生成技术的应用多语言语音生成的需求CosyVoice模型的多语言语音生成能力实现多语言语音生成的代码示例业务价值分析降低多语言内容生成成本提高内容的一致性与质量增强用户体验与可访问性技术
- C#从XmlDocument提取完整字符串
Kelvin_Ngan
C#c#
方法1:通过XmlDocument的OuterXml属性,见XmlDocument类该方法获得的xml字符串是不带格式的,可读性差方法2:利用XmlWriterSettings控制格式等一系列参数,见XmlWriterSettings类例子:usingSystem.IO;usingSystem.Text;usingSystem.Xml;...XmlDocumentdoc=newXmlDocumen
- 【python】追加写入excel,合并工作簿
qq_50653422
excelpython
目录一:删除写入代码(删除所有旧表)二:追加写入代码(保留所有旧表)三、结果展示一:删除写入代码(删除所有旧表)importpandasaspddf1=pd.DataFrame({'A':[1,1,1],'B':[1,1,1]})df2=pd.DataFrame({'C':[0,0,0],'D':[0,0,0]})#使用ExcelWriter写入不同的sheetwithpd.ExcelWriter
- Flink Connector 写入 Iceberg 流程源码解析_confluent icebergsinkconnector
字节全栈_mMD
flinkjava大数据
//添加Writer算子,有并行度SingleOutputStreamOperatorwriterStream=appendWriter(distributeStream,flinkRowType,equalityFieldIds);//添加Commit算子,并行度固定为1SingleOutputStreamOperatorcommitterStream=appendCommitter(write
- AI编程风潮下的生产力革命:从 Copilot 到 Trae
机器小乙
AI编程
AI编程风潮下的生产力革命:从Copilot到Trae前言在人工智能飞速发展的背景下,“AI编程”已经不再是概念炒作,而逐渐成为真实可落地的开发模式。从最初的GitHubCopilot到如今字节跳动的Trae,以及各种聚焦不同场景的AI编程产品如Cursor、Bolt.new、ReplitGhostwriter等,都在加速软件研发流程。本文将结合一些常见使用场景,并通过简短代码示例,让你对AI编程
- Vue3实现酷炫打字机效果:让你的网站文字动起来
陈书予
三十天精通Vue3(含示例代码和代码说明)vue.jsjavascript前端vueelementui
✅创作者:陈书予个人主页:陈书予的个人主页陈书予的个人社区,欢迎你的加入:陈书予的社区专栏地址:三十天精通Vue3文章目录引言一、介绍1.1什么是酷炫打字机效果1.2Vue3框架简介二、创建Vue3项目2.1安装VueCLI2.2创建Vue3项目2.3运行项目三、实现酷炫打字机效果3.1准备工作3.2创建Typewriter组件3.3实现打字机效果四、优化酷炫打字机效果4.1优化Typewrite
- LibreOffice使用感受及兼容性问题
扎量丙不要犟
javac#c++
LibreOffice是一款开源且免费的office程序,能用在Windows,GNU/Linux以及macOS等操作系统上。LibreOffice分为六个模块(我只试用了前三个)1、Writer文本文档:功能和word相似,默认保存格式为odt,同时也能保存为docX等。2、Calc电子表格:功能和excel类似,默认保存格式为ods,同时也能保存为xlsx等。3、Impress演示文稿:功能和
- python与excel整合全教程
刘同学Python学习日记
pythonexcel开发语言
Python与Excel的整合非常强大,尤其适合处理大数据、自动化表格操作以及进行高级数据分析。以下是一个全教程,涵盖常用的Python库及其应用:1.准备工作安装必要的库:使用以下命令安装常用库:pipinstallopenpyxlpandasxlrdxlsxwriterpywin32openpyxl:用于操作Excel的.xlsx文件(推荐)。pandas:强大的数据分析工具,支持读取和写入E
- 举例说明Python的CSV模块
weixin_30556161
python
举例说明Python的CSV模块byGaryJia—上次修改时间:2007-11-3017:28文章标签pythonzope举几个例子来介绍一下,Python的CSV模块的使用方法,包括,reader,writer,DictReader,DictWriter.register_dialect一直非常喜欢python的csv模块,简单易用,经常在项目中使用,现在举几个例子说明一下。reader(cs
- 【python】csv模块
m 宽
pythonpython开发语言
importcsv#用列表方式写入withopen("test.csv","w",newline="")asf:#注意,执行newline=""那么数据会自动换行,如果不指定,那么会多换一行writer=csv.writer(f)writer.writerow(["symbol","date","close"])writer.writerow(["rb2101","20200907","3736"
- python给PDF添加水印
icon920
javapdf
#添加水印fromPyPDF2importPdfReader,PdfWriterfromcopyimportcopysy=PdfReader("C:\\test\\watermark.pdf")#水印所在位置mark_page=sy.pages[0]#水印所在的页数#读取添加水印的文件file_reader=PdfReader("C:\\test\\PDF.pdf")#需要添加水印的PDFfile
- 使用python对pdf批量添加水印,并且水印字体,大小,位置,旋转角度都是可以调节
不懂python不懂R
pythonpythonpdf
1.使用python对pdf批量添加水印,并且水印字体,大小,位置,旋转角度都是可以调节的importosfromPyPDF2importPdfReader,PdfWriterfromreportlab.pdfgenimportcanvasfromreportlab.lib.pagesizesimportletterfromreportlab.lib.colorsimportColordefcre
- java类加载顺序
3213213333332132
java
package com.demo;
/**
* @Description 类加载顺序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {
String s1 = "成员属性";
static String s2 = "
- Hibernate与mybitas的比较
BlueSkator
sqlHibernate框架ibatisorm
第一章 Hibernate与MyBatis
Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。
MyBatis 参考资料官网:http:
- php多维数组排序以及实际工作中的应用
dcj3sjt126com
PHPusortuasort
自定义排序函数返回false或负数意味着第一个参数应该排在第二个参数的前面, 正数或true反之, 0相等usort不保存键名uasort 键名会保存下来uksort 排序是对键名进行的
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8&q
- DOM改变字体大小
周华华
前端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- c3p0的配置
g21121
c3p0
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的下载地址是:http://sourceforge.net/projects/c3p0/这里可以下载到c3p0最新版本。
以在spring中配置dataSource为例:
<!-- spring加载资源文件 -->
<bean name="prope
- Java获取工程路径的几种方法
510888780
java
第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“
- 在类Unix系统下实现SSH免密码登录服务器
Harry642
免密ssh
1.客户机
(1)执行ssh-keygen -t rsa -C "
[email protected]"生成公钥,xxx为自定义大email地址
(2)执行scp ~/.ssh/id_rsa.pub root@xxxxxxxxx:/tmp将公钥拷贝到服务器上,xxx为服务器地址
(3)执行cat
- Java新手入门的30个基本概念一
aijuans
javajava 入门新手
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合
- Memcached for windows 简单介绍
antlove
javaWebwindowscachememcached
1. 安装memcached server
a. 下载memcached-1.2.6-win32-bin.zip
b. 解压缩,dos 窗口切换到 memcached.exe所在目录,运行memcached.exe -d install
c.启动memcached Server,直接在dos窗口键入 net start "memcached Server&quo
- 数据库对象的视图和索引
百合不是茶
索引oeacle数据库视图
视图
视图是从一个表或视图导出的表,也可以是从多个表或视图导出的表。视图是一个虚表,数据库不对视图所对应的数据进行实际存储,只存储视图的定义,对视图的数据进行操作时,只能将字段定义为视图,不能将具体的数据定义为视图
为什么oracle需要视图;
&
- Mockito(一) --入门篇
bijian1013
持续集成mockito单元测试
Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
&nb
- 精通Oracle10编程SQL(5)SQL函数
bijian1013
oracle数据库plsql
/*
* SQL函数
*/
--数字函数
--ABS(n):返回数字n的绝对值
declare
v_abs number(6,2);
begin
v_abs:=abs(&no);
dbms_output.put_line('绝对值:'||v_abs);
end;
--ACOS(n):返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度
- 【Log4j一】Log4j总体介绍
bit1129
log4j
Log4j组件:Logger、Appender、Layout
Log4j核心包含三个组件:logger、appender和layout。这三个组件协作提供日志功能:
日志的输出目标
日志的输出格式
日志的输出级别(是否抑制日志的输出)
logger继承特性
A logger is said to be an ancestor of anothe
- Java IO笔记
白糖_
java
public static void main(String[] args) throws IOException {
//输入流
InputStream in = Test.class.getResourceAsStream("/test");
InputStreamReader isr = new InputStreamReader(in);
Bu
- Docker 监控
ronin47
docker监控
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。 1、关于监控的内容 监控宿主机本身
监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。
额外的,因为是docker的
- java-顺时针打印图形
bylijinnan
java
一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19
- 关于iReport汉化版强制使用英文的配置方法
Kai_Ge
iReport汉化英文版
对于那些具有强迫症的工程师来说,软件汉化固然好用,但是汉化不完整却极为头疼,本方法针对iReport汉化不完整的情况,强制使用英文版,方法如下:
在 iReport 安装路径下的 etc/ireport.conf 里增加红色部分启动参数,即可变为英文版。
# ${HOME} will be replaced by user home directory accordin
- [并行计算]论宇宙的可计算性
comsci
并行计算
现在我们知道,一个涡旋系统具有并行计算能力.按照自然运动理论,这个系统也同时具有存储能力,同时具备计算和存储能力的系统,在某种条件下一般都会产生意识......
那么,这种概念让我们推论出一个结论
&nb
- 用OpenGL实现无限循环的coverflow
dai_lm
androidcoverflow
网上找了很久,都是用Gallery实现的,效果不是很满意,结果发现这个用OpenGL实现的,稍微修改了一下源码,实现了无限循环功能
源码地址:
https://github.com/jackfengji/glcoverflow
public class CoverFlowOpenGL extends GLSurfaceView implements
GLSurfaceV
- JAVA数据计算的几个解决方案1
datamachine
javaHibernate计算
老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
&nbs
- 简单的用户授权系统,利用给user表添加一个字段标识管理员的方式
dcj3sjt126com
yii
怎么创建一个简单的(非 RBAC)用户授权系统
通过查看论坛,我发现这是一个常见的问题,所以我决定写这篇文章。
本文只包括授权系统.假设你已经知道怎么创建身份验证系统(登录)。 数据库
首先在 user 表创建一个新的字段(integer 类型),字段名 'accessLevel',它定义了用户的访问权限 扩展 CWebUser 类
在配置文件(一般为 protecte
- 未选之路
dcj3sjt126com
诗
作者:罗伯特*费罗斯特
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处.
但我却选了另外一条路,
它荒草萋萋,十分幽寂;
显得更诱人,更美丽,
虽然在这两条小路上,
都很少留下旅人的足迹.
那天清晨落叶满地,
两条路都未见脚印痕迹.
呵,留下一条路等改日再
- Java处理15位身份证变18位
蕃薯耀
18位身份证变15位15位身份证变18位身份证转换
15位身份证变18位,18位身份证变15位
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
- SpringMVC4零配置--应用上下文配置【AppConfig】
hanqunfeng
springmvc4
从spring3.0开始,Spring将JavaConfig整合到核心模块,普通的POJO只需要标注@Configuration注解,就可以成为spring配置类,并通过在方法上标注@Bean注解的方式注入bean。
Xml配置和Java类配置对比如下:
applicationContext-AppConfig.xml
<!-- 激活自动代理功能 参看:
- Android中webview跟JAVASCRIPT中的交互
jackyrong
JavaScripthtmlandroid脚本
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,int
- 8个最佳Web开发资源推荐
lampcy
编程Web程序员
Web开发对程序员来说是一项较为复杂的工作,程序员需要快速地满足用户需求。如今很多的在线资源可以给程序员提供帮助,比如指导手册、在线课程和一些参考资料,而且这些资源基本都是免费和适合初学者的。无论你是需要选择一门新的编程语言,或是了解最新的标准,还是需要从其他地方找到一些灵感,我们这里为你整理了一些很好的Web开发资源,帮助你更成功地进行Web开发。
这里列出10个最佳Web开发资源,它们都是受
- 架构师之面试------jdk的hashMap实现
nannan408
HashMap
1.前言。
如题。
2.详述。
(1)hashMap算法就是数组链表。数组存放的元素是键值对。jdk通过移位算法(其实也就是简单的加乘算法),如下代码来生成数组下标(生成后indexFor一下就成下标了)。
static int hash(int h)
{
h ^= (h >>> 20) ^ (h >>>
- html禁止清除input文本输入缓存
Rainbow702
html缓存input输入框change
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。
如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off";
<input type="text" autocomplete="off" n
- POJO和JavaBean的区别和联系
tjmljw
POJOjava beans
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规
- java中单例的五种写法
liuxiaoling
java单例
/**
* 单例模式的五种写法:
* 1、懒汉
* 2、恶汉
* 3、静态内部类
* 4、枚举
* 5、双重校验锁
*/
/**
* 五、 双重校验锁,在当前的内存模型中无效
*/
class LockSingleton
{
private volatile static LockSingleton singleton;
pri