Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
CallJvm
提交
90f592b6
C
CallJvm
项目概览
OpenDocCN
/
CallJvm
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CallJvm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
90f592b6
编写于
11月 02, 2019
作者:
X
xwhqsj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add socket around ...
上级
64337397
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
385 addition
and
136 deletion
+385
-136
callJvmThreadpool/CMakeLists.txt
callJvmThreadpool/CMakeLists.txt
+2
-1
callJvmThreadpool/client.cpp
callJvmThreadpool/client.cpp
+57
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/Makefile.cmake
...JvmThreadpool/cmake-build-debug/CMakeFiles/Makefile.cmake
+0
-73
callJvmThreadpool/cmake-build-debug/CMakeFiles/Makefile2
callJvmThreadpool/cmake-build-debug/CMakeFiles/Makefile2
+2
-2
callJvmThreadpool/cmake-build-debug/CMakeFiles/clion-log.txt
callJvmThreadpool/cmake-build-debug/CMakeFiles/clion-log.txt
+0
-14
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/CXX.includecache
...ol/cmake-build-debug/CMakeFiles/main.dir/CXX.includecache
+7
-17
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/DependInfo.cmake
...ol/cmake-build-debug/CMakeFiles/main.dir/DependInfo.cmake
+2
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/build.make
...readpool/cmake-build-debug/CMakeFiles/main.dir/build.make
+32
-2
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/client.cpp.o
...adpool/cmake-build-debug/CMakeFiles/main.dir/client.cpp.o
+0
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/cmake_clean.cmake
...l/cmake-build-debug/CMakeFiles/main.dir/cmake_clean.cmake
+2
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/depend.internal
...ool/cmake-build-debug/CMakeFiles/main.dir/depend.internal
+2
-5
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/depend.make
...eadpool/cmake-build-debug/CMakeFiles/main.dir/depend.make
+1
-4
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/link.txt
...Threadpool/cmake-build-debug/CMakeFiles/main.dir/link.txt
+1
-1
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/progress.make
...dpool/cmake-build-debug/CMakeFiles/main.dir/progress.make
+2
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/threadpool.cpp.o
...ol/cmake-build-debug/CMakeFiles/main.dir/threadpool.cpp.o
+0
-0
callJvmThreadpool/cmake-build-debug/CMakeFiles/progress.marks
...JvmThreadpool/cmake-build-debug/CMakeFiles/progress.marks
+1
-1
callJvmThreadpool/cmake-build-debug/Makefile
callJvmThreadpool/cmake-build-debug/Makefile
+60
-0
callJvmThreadpool/cmake-build-debug/callJvmThreadpool.cbp
callJvmThreadpool/cmake-build-debug/callJvmThreadpool.cbp
+6
-0
callJvmThreadpool/cmake-build-debug/main
callJvmThreadpool/cmake-build-debug/main
+0
-0
callJvmThreadpool/server.cpp
callJvmThreadpool/server.cpp
+77
-0
callJvmThreadpool/threadpool.cpp
callJvmThreadpool/threadpool.cpp
+127
-14
callJvmThreadpool/tpool.cpp
callJvmThreadpool/tpool.cpp
+2
-1
callJvmThreadpool/tpool.h
callJvmThreadpool/tpool.h
+2
-1
未找到文件。
callJvmThreadpool/CMakeLists.txt
浏览文件 @
90f592b6
...
...
@@ -17,7 +17,8 @@ add_executable(main jni.h jni_md.h tpool.cpp tpool.h
# main.cpp
# multithread.cpp
threadpool.cpp
)
client.cpp
server.cpp
)
target_link_libraries
(
main /usr/local/java/jre/lib/amd64/server/libjvm.so /usr/lib/x86_64-linux-gnu/libpthread.so
)
callJvmThreadpool/client.cpp
0 → 100644
浏览文件 @
90f592b6
//
// Created by wanhui on 11/2/19.
//
#include <cstdio>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <cstring>
#include <iostream>
#define PORT 8080
int
main
()
{
std
::
string
plainsql
,
dbname
;
int
sock
=
0
,
valread
;
struct
sockaddr_in
serv_addr
;
plainsql
=
"select * from test;"
;
char
*
psql
=
(
char
*
)
plainsql
.
data
();
dbname
=
"student"
;
char
*
dbn
=
(
char
*
)
dbname
.
data
();
char
split
=
'$'
;
char
buffer
[
1024
]
=
{
0
};
if
((
sock
=
socket
(
AF_INET
,
SOCK_STREAM
,
0
))
<
0
)
{
printf
(
"
\n
Socket creation error
\n
"
);
return
-
1
;
}
serv_addr
.
sin_family
=
AF_INET
;
serv_addr
.
sin_port
=
htons
(
PORT
);
// convert IPV4 and IPV6 addresses from text to binary form
if
(
inet_pton
(
AF_INET
,
"127.0.0.1"
,
&
serv_addr
.
sin_addr
)
<=
0
)
{
printf
(
"
\n
Invalid address/ Address not supported
\n
"
);
return
-
1
;
}
if
(
connect
(
sock
,
(
struct
sockaddr
*
)
&
serv_addr
,
sizeof
(
serv_addr
))
<
0
)
{
printf
(
"
\n
Connection Failed
\n
"
);
return
-
1
;
}
send
(
sock
,
psql
,
strlen
(
psql
),
0
);
printf
(
"Hello message: %s sent
\n
"
,
psql
);
send
(
sock
,
reinterpret_cast
<
const
void
*>
(
split
),
1
,
0
);
send
(
sock
,
dbn
,
strlen
(
dbn
),
0
);
printf
(
"Talk message: %s send
\n
"
,
dbn
);
valread
=
read
(
sock
,
buffer
,
1024
);
printf
(
"%s
\n
"
,
buffer
);
}
\ No newline at end of file
callJvmThreadpool/cmake-build-debug/CMakeFiles/Makefile.cmake
浏览文件 @
90f592b6
...
...
@@ -11,90 +11,22 @@ set(CMAKE_MAKEFILE_DEPENDS
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
"CMakeFiles/3.14.5/CMakeSystem.cmake"
"CMakeFiles/feature_tests.c"
"CMakeFiles/feature_tests.cxx"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCCompiler.cmake.in"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCCompilerABI.c"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCInformation.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCXXCompiler.cmake.in"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCXXCompilerABI.cpp"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCXXInformation.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCommonLanguageInclude.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeCompilerIdDetection.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCXXCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCompileFeatures.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCompilerABI.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineCompilerId.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeDetermineSystem.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeFindBinUtils.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeFindCodeBlocks.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeGenericSystem.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeInitializeConfigs.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeLanguageInformation.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeParseImplicitLinkInfo.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeSystem.cmake.in"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeSystemSpecificInformation.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeSystemSpecificInitialize.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeTestCCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeTestCXXCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeTestCompilerCommon.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/CMakeUnixFindMake.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-C-FeatureTests.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-C.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-CXX.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU-FindBinUtils.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/GNU.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/TI-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Internal/CMakeCheckCompilerFlag.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Internal/FeatureTesting.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Platform/Linux-Determine-CXX.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Platform/Linux-GNU-C.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Platform/Linux-GNU-CXX.cmake"
"/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/share/cmake-3.14/Modules/Platform/Linux-GNU.cmake"
...
...
@@ -111,11 +43,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
# Byproducts of CMake generate step:
set
(
CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.14.5/CMakeSystem.cmake"
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
"CMakeFiles/3.14.5/CMakeCCompiler.cmake"
"CMakeFiles/3.14.5/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/Makefile2
浏览文件 @
90f592b6
...
...
@@ -71,7 +71,7 @@ CMAKE_BINARY_DIR = /home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug
CMakeFiles/main.dir/all:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/depend
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles --progress-num=1,2,3 "Built target main"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles --progress-num=1,2,3
,4,5
"Built target main"
.PHONY : CMakeFiles/main.dir/all
# Include target in all.
...
...
@@ -81,7 +81,7 @@ all: CMakeFiles/main.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
3
$(CMAKE_COMMAND) -E cmake_progress_start /home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
5
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/main.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles 0
.PHONY : CMakeFiles/main.dir/rule
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/clion-log.txt
浏览文件 @
90f592b6
/home/wanhui/Downloads/clion-2019.2.1/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/wanhui/CallJvm/callJvmThreadpool
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/CXX.includecache
浏览文件 @
90f592b6
...
...
@@ -6,27 +6,17 @@
#IncludeRegexTransform:
/home/wanhui/CallJvm/callJvmThreadpool/
threadpool
.cpp
unistd
.h
/home/wanhui/CallJvm/callJvmThreadpool/
client
.cpp
stdio
.h
-
cstdlib
sys/socket.h
-
jni
.h
arpa/inet
.h
-
tpool.h
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
pthread.h
unistd.h
-
/usr/local/java/include/jni.h
stdio.h
string.h
-
stdarg.h
iostream
-
jni_md.h
/usr/local/java/include/jni_md.h
/usr/local/java/include/linux/jni_md.h
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/DependInfo.cmake
浏览文件 @
90f592b6
...
...
@@ -4,6 +4,8 @@ set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
set
(
CMAKE_DEPENDS_CHECK_CXX
"/home/wanhui/CallJvm/callJvmThreadpool/client.cpp"
"/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/client.cpp.o"
"/home/wanhui/CallJvm/callJvmThreadpool/server.cpp"
"/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/server.cpp.o"
"/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp"
"/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/threadpool.cpp.o"
"/home/wanhui/CallJvm/callJvmThreadpool/tpool.cpp"
"/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/tpool.cpp.o"
)
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/build.make
浏览文件 @
90f592b6
...
...
@@ -83,21 +83,51 @@ CMakeFiles/main.dir/threadpool.cpp.s: cmake_force
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
"Compiling CXX source to assembly CMakeFiles/main.dir/threadpool.cpp.s"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-S
/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp
-o
CMakeFiles/main.dir/threadpool.cpp.s
CMakeFiles/main.dir/client.cpp.o
:
CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/client.cpp.o
:
../client.cpp
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
--progress-dir
=
/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
--progress-num
=
$(CMAKE_PROGRESS_3)
"Building CXX object CMakeFiles/main.dir/client.cpp.o"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-o
CMakeFiles/main.dir/client.cpp.o
-c
/home/wanhui/CallJvm/callJvmThreadpool/client.cpp
CMakeFiles/main.dir/client.cpp.i
:
cmake_force
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
"Preprocessing CXX source to CMakeFiles/main.dir/client.cpp.i"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-E
/home/wanhui/CallJvm/callJvmThreadpool/client.cpp
>
CMakeFiles/main.dir/client.cpp.i
CMakeFiles/main.dir/client.cpp.s
:
cmake_force
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
"Compiling CXX source to assembly CMakeFiles/main.dir/client.cpp.s"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-S
/home/wanhui/CallJvm/callJvmThreadpool/client.cpp
-o
CMakeFiles/main.dir/client.cpp.s
CMakeFiles/main.dir/server.cpp.o
:
CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/server.cpp.o
:
../server.cpp
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
--progress-dir
=
/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
--progress-num
=
$(CMAKE_PROGRESS_4)
"Building CXX object CMakeFiles/main.dir/server.cpp.o"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-o
CMakeFiles/main.dir/server.cpp.o
-c
/home/wanhui/CallJvm/callJvmThreadpool/server.cpp
CMakeFiles/main.dir/server.cpp.i
:
cmake_force
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
"Preprocessing CXX source to CMakeFiles/main.dir/server.cpp.i"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-E
/home/wanhui/CallJvm/callJvmThreadpool/server.cpp
>
CMakeFiles/main.dir/server.cpp.i
CMakeFiles/main.dir/server.cpp.s
:
cmake_force
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
"Compiling CXX source to assembly CMakeFiles/main.dir/server.cpp.s"
/usr/bin/c++
$(CXX_DEFINES)
$(CXX_INCLUDES)
$(CXX_FLAGS)
-S
/home/wanhui/CallJvm/callJvmThreadpool/server.cpp
-o
CMakeFiles/main.dir/server.cpp.s
# Object files for target main
main_OBJECTS
=
\
"CMakeFiles/main.dir/tpool.cpp.o"
\
"CMakeFiles/main.dir/threadpool.cpp.o"
"CMakeFiles/main.dir/threadpool.cpp.o"
\
"CMakeFiles/main.dir/client.cpp.o"
\
"CMakeFiles/main.dir/server.cpp.o"
# External object files for target main
main_EXTERNAL_OBJECTS
=
main
:
CMakeFiles/main.dir/tpool.cpp.o
main
:
CMakeFiles/main.dir/threadpool.cpp.o
main
:
CMakeFiles/main.dir/client.cpp.o
main
:
CMakeFiles/main.dir/server.cpp.o
main
:
CMakeFiles/main.dir/build.make
main
:
/usr/local/java/jre/lib/amd64/server/libjvm.so
main
:
/usr/lib/x86_64-linux-gnu/libpthread.so
main
:
CMakeFiles/main.dir/link.txt
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
--bold
--progress-dir
=
/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
--progress-num
=
$(CMAKE_PROGRESS_
3
)
"Linking CXX executable main"
@
$(CMAKE_COMMAND)
-E
cmake_echo_color
--switch
=
$(COLOR)
--green
--bold
--progress-dir
=
/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles
--progress-num
=
$(CMAKE_PROGRESS_
5
)
"Linking CXX executable main"
$(CMAKE_COMMAND)
-E
cmake_link_script CMakeFiles/main.dir/link.txt
--verbose
=
$(VERBOSE)
# Rule to build all files generated by this target.
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/client.cpp.o
0 → 100644
浏览文件 @
90f592b6
文件已添加
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/cmake_clean.cmake
浏览文件 @
90f592b6
file
(
REMOVE_RECURSE
"CMakeFiles/main.dir/tpool.cpp.o"
"CMakeFiles/main.dir/threadpool.cpp.o"
"CMakeFiles/main.dir/client.cpp.o"
"CMakeFiles/main.dir/server.cpp.o"
"main.pdb"
"main"
)
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/depend.internal
浏览文件 @
90f592b6
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.14
CMakeFiles/main.dir/threadpool.cpp.o
/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
/usr/local/java/include/jni.h
/usr/local/java/include/linux/jni_md.h
CMakeFiles/main.dir/client.cpp.o
/home/wanhui/CallJvm/callJvmThreadpool/client.cpp
CMakeFiles/main.dir/tpool.cpp.o
/home/wanhui/CallJvm/callJvmThreadpool/tpool.cpp
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/depend.make
浏览文件 @
90f592b6
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.14
CMakeFiles/main.dir/threadpool.cpp.o
:
../threadpool.cpp
CMakeFiles/main.dir/threadpool.cpp.o
:
../tpool.h
CMakeFiles/main.dir/threadpool.cpp.o
:
/usr/local/java/include/jni.h
CMakeFiles/main.dir/threadpool.cpp.o
:
/usr/local/java/include/linux/jni_md.h
CMakeFiles/main.dir/client.cpp.o
:
../client.cpp
CMakeFiles/main.dir/tpool.cpp.o
:
../tpool.cpp
CMakeFiles/main.dir/tpool.cpp.o
:
../tpool.h
...
...
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/link.txt
浏览文件 @
90f592b6
/usr/bin/c++ -g CMakeFiles/main.dir/tpool.cpp.o CMakeFiles/main.dir/threadpool.cpp.o -o main -Wl,-rpath,/usr/local/java/jre/lib/amd64/server /usr/local/java/jre/lib/amd64/server/libjvm.so -lpthread
/usr/bin/c++ -g CMakeFiles/main.dir/tpool.cpp.o CMakeFiles/main.dir/threadpool.cpp.o
CMakeFiles/main.dir/client.cpp.o CMakeFiles/main.dir/server.cpp.o
-o main -Wl,-rpath,/usr/local/java/jre/lib/amd64/server /usr/local/java/jre/lib/amd64/server/libjvm.so -lpthread
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/progress.make
浏览文件 @
90f592b6
CMAKE_PROGRESS_1
=
1
CMAKE_PROGRESS_2
=
2
CMAKE_PROGRESS_3
=
3
CMAKE_PROGRESS_4
=
4
CMAKE_PROGRESS_5
=
5
callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/threadpool.cpp.o
已删除
100644 → 0
浏览文件 @
64337397
文件已删除
callJvmThreadpool/cmake-build-debug/CMakeFiles/progress.marks
浏览文件 @
90f592b6
3
5
callJvmThreadpool/cmake-build-debug/Makefile
浏览文件 @
90f592b6
...
...
@@ -123,6 +123,60 @@ main/fast:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
.PHONY
:
main/fast
client.o
:
client.cpp.o
.PHONY
:
client.o
# target to build an object file
client.cpp.o
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/client.cpp.o
.PHONY
:
client.cpp.o
client.i
:
client.cpp.i
.PHONY
:
client.i
# target to preprocess a source file
client.cpp.i
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/client.cpp.i
.PHONY
:
client.cpp.i
client.s
:
client.cpp.s
.PHONY
:
client.s
# target to generate assembly for a file
client.cpp.s
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/client.cpp.s
.PHONY
:
client.cpp.s
server.o
:
server.cpp.o
.PHONY
:
server.o
# target to build an object file
server.cpp.o
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/server.cpp.o
.PHONY
:
server.cpp.o
server.i
:
server.cpp.i
.PHONY
:
server.i
# target to preprocess a source file
server.cpp.i
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/server.cpp.i
.PHONY
:
server.cpp.i
server.s
:
server.cpp.s
.PHONY
:
server.s
# target to generate assembly for a file
server.cpp.s
:
$(MAKE)
-f
CMakeFiles/main.dir/build.make CMakeFiles/main.dir/server.cpp.s
.PHONY
:
server.cpp.s
threadpool.o
:
threadpool.cpp.o
.PHONY
:
threadpool.o
...
...
@@ -186,6 +240,12 @@ help:
@
echo
"... rebuild_cache"
@
echo
"... main"
@
echo
"... edit_cache"
@
echo
"... client.o"
@
echo
"... client.i"
@
echo
"... client.s"
@
echo
"... server.o"
@
echo
"... server.i"
@
echo
"... server.s"
@
echo
"... threadpool.o"
@
echo
"... threadpool.i"
@
echo
"... threadpool.s"
...
...
callJvmThreadpool/cmake-build-debug/callJvmThreadpool.cbp
浏览文件 @
90f592b6
...
...
@@ -96,12 +96,18 @@
</MakeCommands>
</Target>
</Build>
<Unit
filename=
"/home/wanhui/CallJvm/callJvmThreadpool/client.cpp"
>
<Option
target=
"main"
/>
</Unit>
<Unit
filename=
"/home/wanhui/CallJvm/callJvmThreadpool/jni.h"
>
<Option
target=
"main"
/>
</Unit>
<Unit
filename=
"/home/wanhui/CallJvm/callJvmThreadpool/jni_md.h"
>
<Option
target=
"main"
/>
</Unit>
<Unit
filename=
"/home/wanhui/CallJvm/callJvmThreadpool/server.cpp"
>
<Option
target=
"main"
/>
</Unit>
<Unit
filename=
"/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp"
>
<Option
target=
"main"
/>
</Unit>
...
...
callJvmThreadpool/cmake-build-debug/main
浏览文件 @
90f592b6
无法预览此类型文件
callJvmThreadpool/server.cpp
0 → 100644
浏览文件 @
90f592b6
//
// Created by wanhui on 11/2/19.
//
#include <unistd.h>
#include <cstdio>
#include <sys/socket.h>
#include <cstdlib>
#include <netinet/in.h>
#include <cstring>
#include <iostream>
#define PORT 8080
int
main
()
{
int
server_fd
,
new_socket
,
valread
;
struct
sockaddr_in
address
;
int
opt
=
1
;
int
addrlen
=
sizeof
(
address
);
char
buffer
[
1024
]
=
{
0
};
char
*
psql
=
nullptr
;
char
*
dbn
=
nullptr
;
char
*
hello
=
"Hello from server"
;
// Creating socket file descriptor
if
((
server_fd
=
socket
(
AF_INET
,
SOCK_STREAM
,
0
))
==
0
)
{
perror
(
"socket failed"
);
exit
(
EXIT_FAILURE
);
}
// Forcefully attaching socket to the port 8080
if
(
setsockopt
(
server_fd
,
SOL_SOCKET
,
SO_REUSEADDR
|
SO_REUSEPORT
,
&
opt
,
sizeof
(
opt
)))
{
perror
(
"setsockopt"
);
exit
(
EXIT_FAILURE
);
}
address
.
sin_family
=
AF_INET
;
address
.
sin_addr
.
s_addr
=
INADDR_ANY
;
address
.
sin_port
=
htons
(
PORT
);
// Forcefully attaching socket to the port 8080
if
(
bind
(
server_fd
,
(
struct
sockaddr
*
)
&
address
,
sizeof
(
address
))
<
0
)
{
perror
(
"bind failed"
);
exit
(
EXIT_FAILURE
);
}
if
(
listen
(
server_fd
,
3
)
<
0
)
{
perror
(
"listen"
);
exit
(
EXIT_FAILURE
);
}
if
((
new_socket
=
accept
(
server_fd
,
(
struct
sockaddr
*
)
&
address
,
(
socklen_t
*
)
&
addrlen
))
<
0
)
{
perror
(
"accept"
);
exit
(
EXIT_FAILURE
);
}
valread
=
read
(
new_socket
,
buffer
,
1024
);
printf
(
"%s
\n
"
,
buffer
);
int
i
;
for
(
i
=
0
;
i
<
strlen
(
buffer
);
i
++
)
{
if
(
buffer
[
i
]
==
'$'
)
{
strncpy
(
psql
,
buffer
,
i
);
strncpy
(
dbn
,
buffer
+
i
+
1
,
strlen
(
buffer
)
-
i
-
1
);
}
}
printf
(
"%s
\n
"
,
psql
);
printf
(
"%s
\n
"
,
dbn
);
send
(
new_socket
,
hello
,
strlen
(
hello
),
0
);
printf
(
"Hello message sent
\n
"
);
return
0
;
}
\ No newline at end of file
callJvmThreadpool/threadpool.cpp
浏览文件 @
90f592b6
...
...
@@ -2,22 +2,106 @@
// Created by wanhui on 10/12/19.
//
#include <
unistd.h
>
#include <
cstdio
>
#include <cstdlib>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <iostream>
#include <jni.h>
#include "tpool.h"
#define NUM_THREADS 6
#define PORT 8080
struct
JVM
{
JavaVM
*
jvm
;
};
void
invoke_class
(
JNIEnv
*
env
);
void
*
jvmThreads
(
void
*
myJvm
)
void
*
jvmThreads
(
void
*
myJvm
,
char
*
plainsql
,
char
*
dbname
);
JNIEnv
*
create_vm
(
struct
JVM
*
jvm
);
void
invoke_class
(
JNIEnv
*
env
,
std
::
string
str1
,
std
::
string
str2
);
int
socket_init
();
void
*
handle_stream
(
void
*
myJvm
,
void
*
arg
);
void
*
handle_stream
(
void
*
myJvm
,
void
*
arg
)
{
int
server_fd
=
(
int
&
)
arg
;
char
buf
[
1024
];
char
*
psql
;
char
*
dbn
;
read
(
server_fd
,
buf
,
1024
);
printf
(
"%s
\n
"
,
buf
);
int
i
;
for
(
i
=
0
;
i
<
strlen
(
buf
);
i
++
)
{
if
(
buf
[
i
]
==
'$'
)
{
strncpy
(
psql
,
buf
,
i
);
strncpy
(
dbn
,
buf
+
i
+
1
,
strlen
(
buf
)
-
i
-
1
);
}
}
jvmThreads
(
arg
,
psql
,
dbn
);
}
int
socket_init
()
{
int
server_fd
;
struct
sockaddr_in
address
;
int
opt
=
1
;
socklen_t
addrlen
=
sizeof
(
address
);
// crating socket file descriptor
if
((
server_fd
=
socket
(
AF_INET
,
SOCK_STREAM
,
0
))
==
0
)
{
perror
(
"socket failed"
);
exit
(
EXIT_FAILURE
);
}
// forcefully attaching socket to the port 8080
if
(
setsockopt
(
server_fd
,
SOL_SOCKET
,
SO_REUSEADDR
|
SO_REUSEPORT
,
&
opt
,
sizeof
(
opt
)))
{
perror
(
"socketopt"
);
exit
(
EXIT_FAILURE
);
}
address
.
sin_family
=
AF_INET
;
// change the clients' address and port
address
.
sin_addr
.
s_addr
=
INADDR_ANY
;
address
.
sin_port
=
htons
(
PORT
);
if
(
bind
(
server_fd
,
(
struct
sockaddr
*
)
&
address
,
addrlen
)
<
0
)
{
perror
(
"bind failed"
);
exit
(
EXIT_FAILURE
);
}
if
(
listen
(
server_fd
,
3
)
<
0
)
{
perror
(
"listen"
);
exit
(
EXIT_FAILURE
);
}
return
server_fd
;
}
void
*
jvmThreads
(
void
*
myJvm
,
char
*
plainsql
,
char
*
dbname
)
{
auto
*
myJvmptr
=
(
struct
JVM
*
)
myJvm
;
JavaVM
*
jvmPtr
=
myJvmptr
->
jvm
;
...
...
@@ -25,7 +109,7 @@ void* jvmThreads(void *myJvm)
JNIEnv
*
env
=
nullptr
;
jvmPtr
->
AttachCurrentThread
((
void
**
)
&
(
env
),
nullptr
);
invoke_class
(
env
);
invoke_class
(
env
,
plainsql
,
dbname
);
jvmPtr
->
DetachCurrentThread
();
return
nullptr
;
...
...
@@ -55,7 +139,7 @@ JNIEnv *create_vm (struct JVM *jvm) {
}
void
invoke_class
(
JNIEnv
*
env
)
{
void
invoke_class
(
JNIEnv
*
env
,
char
*
plainsql
,
char
*
dbname
)
{
jclass
Main_class
;
jmethodID
fun_id
;
jmethodID
static_id
;
...
...
@@ -80,9 +164,11 @@ void invoke_class (JNIEnv * env) {
// test generally function student()
hello_id
=
env
->
GetMethodID
(
Main_class
,
"<init>"
,
"()V"
);
obj1
=
env
->
NewObject
(
Main_class
,
hello_id
);
jstring
name
=
env
->
NewStringUTF
(
"XWH"
);
jstring
plainsqlstr
=
env
->
NewStringUTF
(
plainsql
);
jstring
dbnamestr
=
env
->
NewStringUTF
(
dbname
);
stu_id
=
env
->
GetMethodID
(
Main_class
,
"student"
,
"([Ljava/lang/String;)V"
);
env
->
CallObjectMethod
(
obj1
,
stu_id
,
name
);
env
->
CallObjectMethod
(
obj1
,
stu_id
,
dbnamestr
);
}
int
main
()
{
...
...
@@ -90,7 +176,10 @@ int main () {
JNIEnv
*
myEnv
=
create_vm
(
&
myJvm
);
if
(
myEnv
==
nullptr
)
return
1
;
{
printf
(
"create_vm failed
\n
"
);
exit
(
1
);
}
if
(
tpool_create
(
NUM_THREADS
)
!=
0
)
{
...
...
@@ -98,15 +187,39 @@ int main () {
exit
(
1
);
}
int
i
;
for
(
i
=
0
;
i
<
10
;
i
++
)
int
sock
=
socket_init
();
struct
sockaddr_in
address
;
printf
(
"listening...
\n
"
);
socklen_t
len
=
sizeof
(
address
);
// endless loop
while
(
true
)
{
tpool_add_work
(
reinterpret_cast
<
void
*
(
*
)(
void
*
)
>
(
jvmThreads
),
reinterpret_cast
<
void
*>
(
&
myJvm
));
int
sock
=
accept
(
sock
,
(
struct
sockaddr
*
)
&
address
,
&
len
);
if
(
sock
<
0
)
{
perror
(
"
\n
Accept Failed
\n
"
);
continue
;
}
tpool_add_work
(
reinterpret_cast
<
void
*
(
*
)(
void
*
)
>
(
handle_stream
),
reinterpret_cast
<
void
*>
(
&
myJvm
),
(
void
*
)
sock
);
}
sleep
(
2
);
tpool_destroy
();
myJvm
.
jvm
->
DestroyJavaVM
();
// only 10 tasks
// int i;
// for(i = 0; i < 10; i++)
// {
// tpool_add_work(reinterpret_cast<void *(*)(void *)>(jvmThreads), reinterpret_cast<void *>(&myJvm), );
// }
//
// sleep(2);
// tpool_destroy();
// myJvm.jvm->DestroyJavaVM ();
return
0
;
}
callJvmThreadpool/tpool.cpp
浏览文件 @
90f592b6
...
...
@@ -118,7 +118,7 @@ void tpool_destroy()
free
(
tpool
);
}
int
tpool_add_work
(
void
*
(
*
routine
)(
void
*
),
void
*
arg
)
int
tpool_add_work
(
void
*
(
*
routine
)(
void
*
),
void
*
arg
,
void
*
arg1
)
{
tpool_work_t
*
work
,
*
member
;
...
...
@@ -137,6 +137,7 @@ int tpool_add_work(void*(*routine)(void*), void* arg)
work
->
routine
=
routine
;
work
->
arg
=
arg
;
work
->
arg1
=
arg1
;
work
->
next
=
nullptr
;
pthread_mutex_lock
(
&
tpool
->
queue_lock
);
...
...
callJvmThreadpool/tpool.h
浏览文件 @
90f592b6
...
...
@@ -12,6 +12,7 @@ typedef struct tpool_work
{
void
*
(
*
routine
)(
void
*
);
void
*
arg
;
void
*
arg1
;
struct
tpool_work
*
next
;
}
tpool_work_t
;
...
...
@@ -29,7 +30,7 @@ int tpool_create(int max_thr_num);
void
tpool_destroy
();
int
tpool_add_work
(
void
*
(
*
routine
)(
void
*
),
void
*
arg
);
int
tpool_add_work
(
void
*
(
*
routine
)(
void
*
),
void
*
arg
,
void
*
arg1
);
#endif //CALLJVMTHREADPOOL_TPOOL_H
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录