首页 > 编程知识 正文

java调用csp,java调用c是如何分配内存的

时间:2023-12-26 12:11:36 阅读:322565 作者:MQKP

本文目录一览:

如何深入浅出地解释并发模型中的 CSP 模型

基于框架的应用都有两部分构成:框架部分和特定应用部分。要想达到框架复用的目标,必须要做到框架部分和特定应用部分的隔离。使用面向对象的一个强大功能:多态,可以实现这一点。在框架中完成抽象概念之间的交互、关联,把具体的实现交给特定的应用来完成。其中一般都会大量使用了Template Method设计模式。Java中的Collection Framework以及微软的MFC都是框架方面很好的例子。有兴趣的读者可以自行研究。

Java语言提供了对于线程很好的支持,实现方法小巧、优雅。对于方法重入的保护,信号量(semaphore)和临界区(critical section)机制的实现都非常简洁。可以很容易的实现多线程间的同步操作从而保护关键数据的一致性。这些特点使得Java成为面向对象语言中对于多线程特性支持方面的佼佼者(C++正在试图把boost库中的对于线程的支持部分纳入语言标准)。

Java中内置了对于对象并发访问的支持,每一个对象都有一个监视器(monitor),同时只允许一个线程持有监视器从而进行对对象的访问,那些没有获得监视器的线程必须等待直到持有监视器的线程释放监视器。对象通过synchronized关键字来声明线程必须获得监视器才能进行对自己的访问。

synchronized声明仅仅对于一些较为简单的线程间同步问题比较有效,对于哪些复杂的同步问题,比如带有条件的同步问题,Java提供了另外的解决方法,wait/notify/notifyAll。

获得对象监视器的线程可以通过调用该对象的wait方法主动释放监视器,等待在该对象的线程等待队列上,此时其他线程可以得到监视器从而访问该对象,之后可以通过调用notify/notifyAll方法来唤醒先前因调用wait方法而等待的线程。

一般情况下,对于wait/notify/notifyAll方法的调用都是根据一定的条件来进行的,比如:经典的生产者/消费者问题中对于队列空、满的判断。熟悉POSIX的读者会发现,使用wait/notify/notifyAll可以很容易的实现POSIX中的一个线程间的高级同步技术:条件变量。

调用Java存储过程遇到SQL4306N时怎么办

本文讲解了在开发Java存储过程时经常会碰到的一个问题及其解决办法。

inginStr,intinStart,intinNum)

throwsException

{

if(inStart1||inStartinStr.length()||inNum=0)outStr="";

if((inStart-1+inNum)inStr.length())inNum=inStr.length()+1-inS

tart;

outStr=inStr.substring(inStart-1,inStart+inNum-1);

}

}

2.创建存储过程的DDL语句(SpTest.db2):

DROPSPECIFICPROCEDURETESTSUB@

CREATEPROCEDUREsubString(OUTOUTSTRINGVARCHAR(500),ININSTRINGVARCHAR(500),I

NINSTARTINT,ININNUMINT)

SPECIFICTESTSUB

DYNAMICRESULTSETS0

DETERMINISTIC

LANGUAGEJAVA

PARAMETERSTYLEJAVA

NODBINFO

FENCED

THREADSAFE

3.编译并定义Java存储过程:

$javacSpTest.java

$cpSpTest.class~/sqllib/function

$db2connecttosample

DatabaseConnectionInformation

Databaseserver=DB2/60008.2.0

SQLauthorizationID=XXXX

Localdatabasealias=SAMPLE

$db2-td@-vfSpTest.db2

DROPSPECIFICPROCEDURETESTSUB

DB21034EThecommandwasprocessedasanSQLstatementbecauseitwasnota

validCommandLineProcessorcommand.DuringSQLprocessingitreturned:

SQL0204N"XXXX.TESTSUB"isanundefinedname.SQLSTATE=42704

CREATEPROCEDUREsubString(OUTOUTSTRINGVARCHAR(500),ININSTRINGVARCHAR(500),I

NINSTARTINT,ININNUMINT)

SPECIFICTESTSUB

DYNAMICRESULTSETS0

DETERMINISTIC

LANGUAGEJAVA

PARAMETERSTYLEJAVA

NODBINFO

FENCED

THREADSAFE

EXTERNALNAME'SpTest.subString'

DB20000ITheSQLcommandcompletedsuccessfully.

$db2"callsubString(?,'sdafatewfdsa',2,5)"

SQL4306NJavastoredprocedureoruser-definedfunction"XXXX.SUBSTRING",

specificname"TESTSUB"couldnotcallJavamethod"subString",signature

"([Ljava/lang/String;Ljava/lang/Strin".SQLSTATE=42724

我们经过检查,发现类名正确、类库也在目录$HOME/sqllib/function下。这时我们集中精力检查程序的签名(Signature)。因为在错误信息中,签名不全,我们要查看$DB2DIAGPATH/db2diag.log文件(其中$DB2DIAGPATH代表数据库管理器配置参数中的DIAGPATH参数)。我们看到完整的签名为:

2005-08-17-14.47.19.569936+480I126072C540LEVEL:Warning

PID:1810588TID:1287PROC:db2fmp(Java)0

INSTANCE:XXXXNODE:000

FUNCTION:DB2UDB,BSUJavasupport,sqlejCallJavaRoutine_dll,probe:150

MESSAGE:JNIGetMethodIDfailed.signature:

DATA#1:Hexdump,42bytes

0x3007A950:285B4C6A6176612F6C616E672F537472([Ljava/lang/Str

0x3007A960:696E673B4C6A6176612F6C616E672F53ing;Ljava/lang/S

0x3007A970:7472696E673B49492956tring;II)V

这是DB2用来查找Java存储过程对应的方法时用的签名(Signature),此时我们再检查一下类文件中SubString方法的签名:

$cd~/sqllib/function

$javap-sSpTest

Thisutilitycanbeusedtoreverseassemblecode.Manyprogramlicense

agreementsdonotpermitreverseassembly.Ifyouarenotthecopyright

ownerofthecodewhichyouwanttoreverseassemble,pleasecheckthe

licenseagreementunderwhichyouacquiredsuchcodetoconfirmwhether

youarepermittedtoperformsuchreverseassembly.

CompiledfromSpTest.java

publicclassSpTestextendsjava.lang.Object{

publicSpTest();

/*()V*/

publicstaticvoidsubString(java.lang.String,java.lang.String,int,int)t

hrowsjava.lang.Exception;

/*(Ljava/lang/String;Ljava/lang/String;II)V*/

我们看到在Java类中的函数签名与DB2查找的函数签名不一致。这就是SQL4306N产生的原因。

第一个参数不一样。根据JNI规范,[Ljava/lang/String是一个String数组。而Ljava/lang/String则是字符串String类型,也就是我们程序源文件中定义的类型。那为什么DB2要查找一个String数组类型的参数呢?通过查找DB2文档,我们发现如下解释():

PARAMETERTYPEJAVA

ThismeansthattheprocedurewilluseaparameterpassingconventionthatconformstotheJavalanguageandSQLJRoutinesspecification.IN/OUTandOUTparameterswillbepassedassingleentryarraystofacilitatereturningvalues.ThiscanonlybespecifiedwhenLANGUAGEJAVAisused.

我们看到如果创建存储过程时使用了IN/OUT以及OUT参数,DB2会将其解释为一个单项数组,并通过单项数组传递返回值。因此,我们同样需要在Java程序中使用字符串数组来返回我们的结果。

修改后的java源程序如下所示:

importjava.lang.*;

importjava.io.*;

publicclassSpTest

{

publicstaticvoidsubString(String[]outStr,StringinStr,intinStart,intin

Num)

throwsException

{

if(inStart1||inStartinStr.length()||inNum=0)outStr[0]="";

if((inStart-1+inNum)inStr.length())inNum=inStr.length()+1-inS

tart;

outStr[0]=inStr.substring(inStart-1,inStart+inNum-1);

}

}

此时我们重新编译并创建存储过程,可以看到,它可以正确执行了。

$javacSpTest.java

$cpSpTest.class~/sqllib/function

$db2-td@-vfSpTest.db2

DROPSPECIFICPROCEDURETESTSUB

DB20000ITheSQLcommandcompletedsuccessfully.

CREATEPROCEDUREsubString(OUTOUTSTRINGVARCHAR(500),ININSTRINGVARCHAR(500),I

NINSTARTINT,ININNUMINT)

SPECIFICTESTSUB

DYNAMICRESULTSETS0

DETERMINISTIC

LANGUAGEJAVA

PARAMETERSTYLEJAVA

NODBINFO

FENCED

THREADSAFE

EXTERNALNAME'SpTest.subString'

DB20000ITheSQLcommandcompletedsuccessfully.

$db2"callsubstring(?,'sadfdsafdsaf',2,5)"

Valueofoutputparameters

ParameterName:OUTSTRING

ParameterValue:adfds

ReturnStatus=0

关于SQL4306N的错误,基本上通过上面的步骤就可以解决了。如果您的问题通过上面的检查方法还没有解决,请联系IBM技术支持人员。

比如软件技术基础,c语言,c++,csp, php 使用JAVA理解程序逻辑,使用HTML

…… 你怎么不说开发这些还需要会画图 会各种流派的画法 还需要懂得音乐 做种类不同的东西 还需要懂经济 天文 地理 琴棋书画

CryptographicServices这个服务可以关闭么?

可以的,影响不大,或者可以改为手动。

CryptographicServices此加密服务,一般可设置为手动或自动,免得在安装某些软件时出现莫名其妙的提示。

设置方法:

1、按下,Win+R键。

2、输入services.msc,打开CryptographicServices服务。

找到服CryptographicServices务,双击将启动类型设置为“手动”或者保持“自动”即可。

扩展资料

在MicrosoftWindows中,加密服务提供程序(CSP)是实现MicrosoftCryptoAPI(CAPI)的软件库。CSP实现编码和解码功能,计算机应用程序可以使用这些功能,例如,实现强用户认证或安全电子邮件。

CSP是可由不同应用程序使用的独立模块。用户程序调用CryptoAPI函数,这些函数被重定向到CSP函数。由于CSP负责实施加密算法和标准,因此应用程序无需关注安全性细节。

此外,一个应用程序可以定义在调用CryptoAPI时将使用哪个CSP。实际上,所有加密活动都是在CSP中实现的。CryptoAPI仅作为应用程序和CSP之间的桥梁。

CSP基本上是作为一种特殊类型的DLL实现的,对加载和使用有特殊限制。每个CSP必须由Microsoft进行数字签名,并在Windows加载CSP时验证签名。

此外,在加载后,Windows会定期重新扫描CSP以检测篡改,无论是恶意软件(如计算机病毒)还是用户自己试图规避可能内置的限制(例如加密密钥长度)CSP的代码。

要获得签名,非MicrosoftCSP开发人员必须向Microsoft提供文书工作,承诺遵守各种法律限制并提供有效的联系信息。

截至2000年左右,微软并未收取任何提供这些签名的费用。出于开发和测试的目的,CSP开发人员可以将Windows配置为识别开发人员自己的签名而不是Microsoft的签名,但这是一个有点复杂和模糊的操作,不适合非技术最终用户。

参考资料来源:百度百科-CryptographicServices

sus304-csp中的CSP是什么意思

CSP(Chip Scale Package)就是芯片级封装的意思,它是新一代的芯片封装技术,是继TSOP、BGA之后内存上的又一种新的技术。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSP模式,即Come-Stay-Pay

2005年11月24日、28日和29日,盛大先后宣布三款主打游戏《梦幻国度》、《热血传奇》和《传奇世界》实行“永久免费”,抛弃原有的计时收费的商业模式。也就是说,盛大将不再根据玩家的上线时间来收费,而是靠销售各种虚拟“道具”与提供增值服务来获得收入。对于这个有些匪夷所思的免费,业界一片哗然,“陈天桥疯了”成为了最直接的解释。

媒体们与华尔街口径一致的对盛大的“免费模式”表示“难以理解”。因为在2005年四季度,也就是盛大宣布“游戏免费”、进行商业模式转型的首季,他们看到的是:单季净亏损高达人民币5.389亿元的巨亏财报。

而之后的三个季度,盛大的业绩也比照往年同期大幅下滑。这使得盛大陷入更大的质疑当中。一年多之内,盛大股价跌掉了历史最高价格的七成多,市值大幅缩水。盛大也失去了网游老大的位置,被网易所取代,与九城等公司的差距也逐渐缩小。

已经习惯了以“传奇”、“惊人”、“神话”连用的盛大要开始适应与“质疑”、“危机”、“困境”的结合,尽管今天这些已经变为:盛大“再创传奇”、“更为惊人”和“续写神话”。但无论如何,盛大硬邦邦的数字盈利说明:盛大成功了,盛大回来了。

盛大董事会主席兼CEO陈天桥将盛大新的商业模型称为CSP模式,他用CSP来回答“免费”的盛大靠什么来赚钱的问题。

“所谓‘免费’其实是带引号的,并不是真正的免费,”盛大高级副总裁张燕梅告诉《中国经济周刊》,“CSP模式,即Come-Stay-Pay,也就是‘来了-停留-付费’。通俗一点讲,就是免掉了进入游戏的‘门票’,但是设立了很多收费服务项目和产品的销售点。”

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSP---手性固定相 chiral stationary phase,

手性固定相可以根据其化学类型分类为:①“刷型”手性固定相;②手性聚合物固定相;③环糊精类手性固定相;④大环抗生素手性固定相;⑤蛋白质手性固定相;⑥配体交换手性固定相;⑦冠醚手性固定相等。

手性固定相也可以根据它们与被拆分的对映异构体间的作用机制进行分类:第一类是通过氢键、π—π或偶极吸引等相互作用与对映异构体形成配合物进行拆分的手性固定相,N—硝基苯甲酰基氨基酸或N—萘基氨基酸酯手性固定相属于该类;第二类是通过吸引和包合作,用进行拆分的手性固定相,纤维素衍生物手性固定相大都属于该类;第三类是具有手性空穴的手性固定相,对映异构体进入手性空穴后形成包合配合物被拆分,这类手性固定相主要为环糊精,冠醚手性固定相和螺旋型聚合物(如三苯甲基丁烯酸酯)也属于该类;第四类是通过对映异构金属配合物进行拆分的手性固定相,也称为手性配体交换色谱(chiral ligand exchange chromatography,CLEC);第五类是通过疏水和极性相互作用进行手性拆分的蛋白质手性固定相。

-------------------------------------------------------------------------------------------------------------------------------------------------------

WEB CSP

Vb/Java/php等脚本直接嵌入在HTML中叫 ASP/JSP/PHP, 那么用 C 直接嵌入在HTML中叫 CSP 吗?

是的, 现在我们可以直接将 C 语句嵌入在HTML中了, 并叫它 CSP了.

C 语言天然好的"移植性/高效性/灵活性", 一直以来都是最受程序员青睐的语言, 现在用CSP 技术我们就可以轻松地将 C 语句直接嵌入到 HTML 源文件中并叫它 CSP 了.

一般工作步骤:

编辑好的 CSP 源程序, 可以 eybuild 开发包提供的 CSP2BIN 工具将 CSP 源文件生成 C 程序的源文件, 再连接上 eybuild 提供的高效 CGI 运行库, 就可以在各种平台生成移植性非常高的 CGI 程序了.

高效的集成技术:

通过高集成技术, 你可以把许多CSP/HTML页面集成生成到一个CGI中(包括图片, CSS 及其它静态文件). 甚至, 你可以将一个小型的网站或应用生成到一个CGI文件中, 这使得最的可执行脚本文件管理变得异常简单. 这一点在嵌入式设备上特别有用, 因为它们中的很多急乎没有外存(如Flash ROM). eybuild 为最后生成的 CGI 程序在其内部建立了虚馕募低骋约靶槟柯加成?

To ASP/JSP/PHP 的程序员:

编写 CSP 程序就跟编写 ASP/JSP/PHP 一样, 可以以先编写 HTML 文件为模板, 再在其中插入CSP 的语句. 甚至有些时候, 就可以直接拿 JSP/PHP 的源文件作为 CSP 的源文件了, 因为它们都用 进行标记的嘛. 如果你是 ASP/JSP/PHP的程序员, 并会一点 C, 半天时间你就能把 CSP 全学会了.

TO 嵌入式WEB开发:

CSP 设计的最原始的初衷, 就是要为嵌入式开发定制的一套类似 ASP/JSP/PHP的C语言开发工具. 因为嵌入式设备(如PDA/路由器/交换机等)上用的开发语言主要是 C, 而传统的 CGI 库 clib 以及开发模式远远不能跟上现代的开发需求.

现在 CSP 的eybuild开发环境提供的PC和嵌入式设备上高效移植的开发库, 让服务器上应用和嵌入开发进行了有效统一, 使得两者上的开发变得更为容易. 同时, 优秀的跨平台的移植性也是eybuild的最主要特性之一.

实践证明, CSP 及其开发工具 eybuild是嵌入式设备WEB开发的最理想工具, 它能大大节省开发周期(一般能节省4-6倍), 最能大大提高最终代码的可维护性(维护的是 HTML 和 C 代码, 而两都分开的, 所以维护更容易).

可以直接调用任意 C 的函数

在 CSP 源程序中可以非常容易地包含任意 C 程序的头文件, 这样在 HTML 代码中你就可以像写编写 C 文件一样调用外部函数或系统函数了. 跟直接编辑 C 程序几乎没有什么差别.

CSP 的宏指令指示符 @

用宏指令指示符不仅可以进行包含 C 程序的头文件, 还可以包含其它CSP文件呢. 这样当许多页面需要引用共通的一部分时(如页头/页脚或其它部分), 包含其它 CSP 源文件这个功能显示特别有用. 除此以外, 跟 ASP/JSP/PHP一样它还可以有效控制页面输出时的 MIME 头, 页面缓冲区大小等等.

免费工具/CSP源码下载及更多 CSP 的特性尽在

点击这里下载 eybuild 的中文手册:

点击这里免费下载 eybuild 开发环境(Windows/Linux版):

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSP------加密服务提供程序

加密服务提供程序 (CSP) 是 Windows 操作系统中提供一般加密功能的硬件和软件组件。可以编写这些 CSP 以提供各种加密和签名算法。配置为由某个证书模板使用的每个 CSP 都可以潜在支持不同的加密算法,因此,可以支持不同的密钥长度。这意味着,必须将证书模板配置为支持一个或多个 CSP。选择特定的 CSP,可让管理员控制此证书使用的算法和密钥长度。Windows Server 2003 家族包含许多 CSP,但还可添加其他 CS

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSP--------Compact Strip Production

武钢薄板坯连铸连轧工程。

CSP生产线介绍:

CSP工程由2台薄板坯连铸机、1座辊底式均热炉(均热炉入口增加了38MPa旋转除鳞机、预留了电磁感应加热)和1条热连轧机组3部分组成。热连轧的主要设备有1台事故剪、1架立辊轧机、7机架精轧机组、1套带钢层流冷却系统、2台地下卷取机,1个具有数控技术的磨辊间;1套水处理系统实现零排放;1套库区激光定位计算机系统;预留了用于半无头轧制的高速飞剪。机械设备连铸机和轧机、卷取机(包括其三电控制系统)由SMSD提供,均热炉(包括均热炉三电控制系统)由德新公司提供。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CSP--------Communicating Sequential Process

信息交换序列处理

在计算机科学与技术这个领域,CSP是一个很正式的,对交互样式描述性的语言系统。她用传统的数学表示法来描述并行的数据处理过程。CSP最早始于1978年C.A.R. Hoare的论文,之后就开始不断的发展演变。CSP已经作为一种专业的,可证实的并行数据处理系统,实践性的应用于工业中

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。