提交 3c4c5f71 编写于 作者: X xwhqsj

add socketMultithread.cpp

上级 73a559f1
......@@ -16,7 +16,7 @@ add_executable(main jni.h jni_md.h tpool.cpp tpool.h
# test.cpp
# main.cpp
# multithread.cpp
threadpool.cpp
socketMultithread.cpp
# server.cpp
)
......
......@@ -25,10 +25,6 @@ vector
-
jni.h
-
tpool.h
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
/home/wanhui/CallJvm/callJvmThreadpool/tpool.h
pthread.h
-
......
......@@ -4,7 +4,7 @@ set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp" "/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/threadpool.cpp.o"
"/home/wanhui/CallJvm/callJvmThreadpool/socketMultithread.cpp" "/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/socketMultithread.cpp.o"
"/home/wanhui/CallJvm/callJvmThreadpool/tpool.cpp" "/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles/main.dir/tpool.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
......
......@@ -70,29 +70,29 @@ CMakeFiles/main.dir/tpool.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/main.dir/tpool.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/wanhui/CallJvm/callJvmThreadpool/tpool.cpp -o CMakeFiles/main.dir/tpool.cpp.s
CMakeFiles/main.dir/threadpool.cpp.o: CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/threadpool.cpp.o: ../threadpool.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/main.dir/threadpool.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/main.dir/threadpool.cpp.o -c /home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp
CMakeFiles/main.dir/socketMultithread.cpp.o: CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/socketMultithread.cpp.o: ../socketMultithread.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/wanhui/CallJvm/callJvmThreadpool/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/main.dir/socketMultithread.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/main.dir/socketMultithread.cpp.o -c /home/wanhui/CallJvm/callJvmThreadpool/socketMultithread.cpp
CMakeFiles/main.dir/threadpool.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/main.dir/threadpool.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp > CMakeFiles/main.dir/threadpool.cpp.i
CMakeFiles/main.dir/socketMultithread.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/main.dir/socketMultithread.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/wanhui/CallJvm/callJvmThreadpool/socketMultithread.cpp > CMakeFiles/main.dir/socketMultithread.cpp.i
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/socketMultithread.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/main.dir/socketMultithread.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/wanhui/CallJvm/callJvmThreadpool/socketMultithread.cpp -o CMakeFiles/main.dir/socketMultithread.cpp.s
# Object files for target main
main_OBJECTS = \
"CMakeFiles/main.dir/tpool.cpp.o" \
"CMakeFiles/main.dir/threadpool.cpp.o"
"CMakeFiles/main.dir/socketMultithread.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/socketMultithread.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
......
file(REMOVE_RECURSE
"CMakeFiles/main.dir/tpool.cpp.o"
"CMakeFiles/main.dir/threadpool.cpp.o"
"CMakeFiles/main.dir/socketMultithread.cpp.o"
"main.pdb"
"main"
)
......
......@@ -3,7 +3,6 @@
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/tpool.cpp.o
......
......@@ -2,7 +2,6 @@
# 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
......
/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/socketMultithread.cpp.o -o main -Wl,-rpath,/usr/local/java/jre/lib/amd64/server /usr/local/java/jre/lib/amd64/server/libjvm.so -lpthread
......@@ -123,32 +123,32 @@ main/fast:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
.PHONY : main/fast
threadpool.o: threadpool.cpp.o
socketMultithread.o: socketMultithread.cpp.o
.PHONY : threadpool.o
.PHONY : socketMultithread.o
# target to build an object file
threadpool.cpp.o:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/threadpool.cpp.o
.PHONY : threadpool.cpp.o
socketMultithread.cpp.o:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/socketMultithread.cpp.o
.PHONY : socketMultithread.cpp.o
threadpool.i: threadpool.cpp.i
socketMultithread.i: socketMultithread.cpp.i
.PHONY : threadpool.i
.PHONY : socketMultithread.i
# target to preprocess a source file
threadpool.cpp.i:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/threadpool.cpp.i
.PHONY : threadpool.cpp.i
socketMultithread.cpp.i:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/socketMultithread.cpp.i
.PHONY : socketMultithread.cpp.i
threadpool.s: threadpool.cpp.s
socketMultithread.s: socketMultithread.cpp.s
.PHONY : threadpool.s
.PHONY : socketMultithread.s
# target to generate assembly for a file
threadpool.cpp.s:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/threadpool.cpp.s
.PHONY : threadpool.cpp.s
socketMultithread.cpp.s:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/socketMultithread.cpp.s
.PHONY : socketMultithread.cpp.s
tpool.o: tpool.cpp.o
......@@ -186,9 +186,9 @@ help:
@echo "... rebuild_cache"
@echo "... main"
@echo "... edit_cache"
@echo "... threadpool.o"
@echo "... threadpool.i"
@echo "... threadpool.s"
@echo "... socketMultithread.o"
@echo "... socketMultithread.i"
@echo "... socketMultithread.s"
@echo "... tpool.o"
@echo "... tpool.i"
@echo "... tpool.s"
......
......@@ -102,7 +102,7 @@
<Unit filename="/home/wanhui/CallJvm/callJvmThreadpool/jni_md.h">
<Option target="main"/>
</Unit>
<Unit filename="/home/wanhui/CallJvm/callJvmThreadpool/threadpool.cpp">
<Unit filename="/home/wanhui/CallJvm/callJvmThreadpool/socketMultithread.cpp">
<Option target="main"/>
</Unit>
<Unit filename="/home/wanhui/CallJvm/callJvmThreadpool/tpool.cpp">
......
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000055b3e95add90, pid=17128, tid=0x00007fdd13fff700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_221-b11) (build 1.8.0_221-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.221-b11 interpreted mode linux-amd64 compressed oops)
# Problematic frame:
# C [main+0x1d90] handle_stream(void*)+0xe0
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread is native thread
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000
Registers:
RAX=0x0000000000000000, RBX=0x00007fdd3448d3e0, RCX=0x00007fdd332f2384, RDX=0x0000000000000000
RSP=0x00007fdd13ffea70, RBP=0x0000000000000005, RSI=0x00007fdd13ffea78, RDI=0x00007fdd13ffeab0
R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x0000000000000000
R12=0x00007ffd84c40e70, R13=0x00007fdd13ffeab0, R14=0x0000000000000000, R15=0x00007ffd84c40dd0
RIP=0x000055b3e95add90, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e
Top of Stack: (sp=0x00007fdd13ffea70)
0x00007fdd13ffea70: 0000000000000000 0000000000000000
0x00007fdd13ffea80: 0000000000000000 0000000000000000
0x00007fdd13ffea90: 0000000000000000 0000000000000000
0x00007fdd13ffeaa0: 0000000024000000 0000000000000000
0x00007fdd13ffeab0: 0000000000000000 0000000000000000
0x00007fdd13ffeac0: 0000000000000000 0000000000000000
0x00007fdd13ffead0: 0000000000000000 0000000000000000
0x00007fdd13ffeae0: 0000000000000000 0000000000000000
0x00007fdd13ffeaf0: 0000000000000000 0000000000000000
0x00007fdd13ffeb00: 0000000000000000 0000000000000000
0x00007fdd13ffeb10: 0000000000000000 0000000000000000
0x00007fdd13ffeb20: 0000000000000000 0000000000000000
0x00007fdd13ffeb30: 0000000000000000 0000000000000000
0x00007fdd13ffeb40: 0000000000000000 0000000000000000
0x00007fdd13ffeb50: 0000000000000000 0000000000000000
0x00007fdd13ffeb60: 0000000000000000 0000000000000000
0x00007fdd13ffeb70: 0000000000000000 0000000000000000
0x00007fdd13ffeb80: 0000000000000000 0000000000000000
0x00007fdd13ffeb90: 0000000000000000 0000000000000000
0x00007fdd13ffeba0: 0000000000000000 0000000000000000
0x00007fdd13ffebb0: 0000000000000000 0000000000000000
0x00007fdd13ffebc0: 0000000000000000 0000000000000000
0x00007fdd13ffebd0: 0000000000000000 0000000000000000
0x00007fdd13ffebe0: 0000000000000000 0000000000000000
0x00007fdd13ffebf0: 0000000000000000 0000000000000000
0x00007fdd13ffec00: 0000000000000000 0000000000000000
0x00007fdd13ffec10: 0000000000000000 0000000000000000
0x00007fdd13ffec20: 0000000000000000 0000000000000000
0x00007fdd13ffec30: 0000000000000000 0000000000000000
0x00007fdd13ffec40: 0000000000000000 0000000000000000
0x00007fdd13ffec50: 0000000000000000 0000000000000000
0x00007fdd13ffec60: 0000000000000000 0000000000000000
Instructions: (pc=0x000055b3e95add90)
0x000055b3e95add70: 4c 89 ea 4c 89 f7 e8 35 02 00 00 eb d4 0f 1f 00
0x000055b3e95add80: 48 8b 44 24 10 49 8b 1c 24 48 8d 74 24 08 31 d2
0x000055b3e95add90: 4c 8b 28 4c 8b 70 08 48 89 df 48 8b 03 48 c7 44
0x000055b3e95adda0: 24 08 00 00 00 00 ff 50 20 48 8b 7c 24 08 4c 89
Register to memory mapping:
RAX=0x0000000000000000 is an unknown value
RBX=0x00007fdd3448d3e0: <offset 0xf8d3e0> in /usr/local/java/jre/lib/amd64/server/libjvm.so at 0x00007fdd33500000
RCX=0x00007fdd332f2384: read+0x44 in /lib/x86_64-linux-gnu/libpthread.so.0 at 0x00007fdd332e1000
RDX=0x0000000000000000 is an unknown value
RSP=0x00007fdd13ffea70 is an unknown value
RBP=0x0000000000000005 is an unknown value
RSI=0x00007fdd13ffea78 is an unknown value
RDI=0x00007fdd13ffeab0 is an unknown value
R8 =0x0000000000000000 is an unknown value
R9 =0x0000000000000000 is an unknown value
R10=0x0000000000000000 is an unknown value
R11=0x0000000000000000 is an unknown value
R12=0x00007ffd84c40e70 is pointing into the stack for thread: 0x000055b3eabb0000
R13=0x00007fdd13ffeab0 is an unknown value
R14=0x0000000000000000 is an unknown value
R15=0x00007ffd84c40dd0 is pointing into the stack for thread: 0x000055b3eabb0000
Stack: [0x00007fdd13800000,0x00007fdd14000000], sp=0x00007fdd13ffea70, free space=8186k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [main+0x1d90] handle_stream(void*)+0xe0
--------------- P R O C E S S ---------------
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
heap address: 0x00000000c2a00000, size: 982 MB, Compressed Oops mode: 32-bit
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x0000000100000000
Heap:
PSYoungGen total 18432K, used 634K [0x00000000eb900000, 0x00000000ecd80000, 0x0000000100000000)
eden space 15872K, 4% used [0x00000000eb900000,0x00000000eb99ebc8,0x00000000ec880000)
from space 2560K, 0% used [0x00000000ecb00000,0x00000000ecb00000,0x00000000ecd80000)
to space 2560K, 0% used [0x00000000ec880000,0x00000000ec880000,0x00000000ecb00000)
ParOldGen total 42496K, used 0K [0x00000000c2a00000, 0x00000000c5380000, 0x00000000eb900000)
object space 42496K, 0% used [0x00000000c2a00000,0x00000000c2a00000,0x00000000c5380000)
Metaspace used 2176K, capacity 4480K, committed 4480K, reserved 1056768K
class space used 240K, capacity 384K, committed 384K, reserved 1048576K
Card table byte_map: [0x00007fdd21d5d000,0x00007fdd21f49000] byte_map_base: 0x00007fdd21748000
Marking Bits: (ParMarkBitMap*) 0x00007fdd344cbd80
Begin Bits: [0x00007fdd1a150000, 0x00007fdd1b0a8000)
End Bits: [0x00007fdd1b0a8000, 0x00007fdd1c000000)
Polling page: 0x00007fdd3470d000
CodeCache: size=245760Kb used=469Kb max_used=469Kb free=245290Kb
bounds [0x00007fdd22309000, 0x00007fdd22579000, 0x00007fdd31309000]
total_blobs=171 nmethods=0 adapters=137
compilation: disabled (interpreter mode)
Compilation events (0 events):
No events
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (2 events):
Event: 0.031 Thread 0x000055b3eabb0000 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x00000000eb907cb8) thrown at [/HUDSON/workspace/8-2-build-linux-amd64/jdk8u221/13320/hotspot/src/sh
Event: 0.031 Thread 0x000055b3eabb0000 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x00000000eb907fa0) thrown at [/HUDSON/workspace/8-2-build-linux-amd64/jdk8u221/13320/hotspot/src/share/vm/prims/jni.c
Events (10 events):
Event: 0.049 loading class java/lang/invoke/MethodHandleStatics done
Event: 0.049 loading class java/lang/invoke/MethodHandleStatics$1
Event: 0.049 loading class java/lang/invoke/MethodHandleStatics$1 done
Event: 0.049 Thread 0x000055b3eac5f000 Thread added: 0x000055b3eac5f000
Event: 0.049 loading class sun/misc/PostVMInitHook
Event: 0.049 loading class sun/misc/PostVMInitHook done
Event: 0.049 loading class sun/misc/PostVMInitHook$1
Event: 0.049 loading class sun/misc/PostVMInitHook$1 done
Event: 4.088 Executing VM operation: EnableBiasedLocking
Event: 4.088 Executing VM operation: EnableBiasedLocking done
Dynamic libraries:
c2a00000-c5380000 rw-p 00000000
VM Arguments:
jvm_args: -Djava.compiler=NONE -verbose:jni
java_command: <unknown>
java_class_path (initial): .:/home/wanhui/CallJvm/callJvmThreadpool/qin_test1.jar
Launcher Type: generic
Environment Variables:
JAVA_HOME=/usr/local/java
CLASSPATH=/home/wanhui/Downloads/clion-2019.2.1/lib/bootstrap.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/extensions.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/util.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/jdom.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/log4j.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/trove4j.jar:/home/wanhui/Downloads/clion-2019.2.1/lib/jna.jar
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/redis/redis-4.0.9.tar_files/redis-4.0.9/src:/usr/local/mysql/bin
USERNAME=wanhui
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad3d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad3d90], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x90b8b0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x90b8b0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x90b8b0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x90b8b0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x90b780], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.so+0x90bda0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.so+0x90bda0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.so+0x90bda0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.so+0x90bda0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Ubuntu
DISTRIB_RELEAS
uname:Linux 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64
libc:glibc 2.27 NPTL 2.27
rlimit: STACK 8192k, CORE 0k, NPROC 15513, NOFILE 1048576, AS infinity
load average:0.12 0.17 0.11
/proc/meminfo:
container (cgroup) information:
container_type: cgroupv1
cpu_cpuset_cpus: failed
cpu_memory_nodes: 0
active_processor_count: 4
cpu_quota: -1
cpu_period: 100000
cpu_shares: -1
memory_limit_in_bytes: -1
memory_and_swap_limit_in_bytes: -2
memory_soft_limit_in_bytes: -1
memory_usage_in_bytes: -2
memory_max_usage_in_bytes: 152309760
CPU:total 4 (initial active 4) (2 cores per cpu, 1 threads per core) family 6 model 158 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, tsc, tscinvbit, bmi1, bmi2, adx
/proc/cpuinfo:
processor : 0
vendor_id : Genuin
Memory: 4k page, physical 4015688k(175560k free), swap 2097148k(1064188k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.221-b11) for linux-amd64 JRE (1.8.0_221-b11), built on Jul 4 2019 04:27:00 by "java_re" with gcc 7.3.0
time: Mon Nov 4 21:45:21 2019
timezone: CST
elapsed time: 11 seconds (0d 0h 0m 11s)
此差异已折叠。
此差异已折叠。
......@@ -11,8 +11,9 @@
#include <iostream>
#include <vector>
#include <jni.h>
#include "tpool.h"
#include <pthread.h>
//#include "tpool.h"
#define NUM_THREADS 6
......@@ -30,6 +31,11 @@ struct ARGS
};
pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
pthread_t threads[NUM_THREADS];
void *jvmThreads(void *myJvm, char* plainsql, char* dbname);
JNIEnv *create_vm(struct JVM *jvm);
......@@ -75,12 +81,8 @@ int socket_init()
}
printf("listening...\n");
if ((new_socket = accept(server_fd, (struct sockaddr *) &address, (socklen_t *) &addrlen)) < 0) {
perror("accept failed");
exit(EXIT_FAILURE);
}
return new_socket;
return server_fd;
}
JNIEnv *create_vm (struct JVM *jvm) {
......@@ -134,7 +136,8 @@ void* handle_stream(void* args)
char hello[] = "Hello send";
send(client_fd, hello, strlen(hello), 0);
close(client_fd);
pthread_exit(nullptr);
}
void* jvmThreads(void *myJvm, char* plainsql, char* dbname)
......@@ -144,9 +147,11 @@ void* jvmThreads(void *myJvm, char* plainsql, char* dbname)
JNIEnv* env = nullptr;
pthread_mutex_lock(&lock);
jvmPtr->AttachCurrentThread((void**)&(env), nullptr);
invoke_class(env, plainsql, dbname);
jvmPtr->DetachCurrentThread();
pthread_mutex_unlock(&lock);
return nullptr;
}
......@@ -194,36 +199,57 @@ int main () {
exit(1);
}
if(tpool_create(NUM_THREADS) != 0)
{
printf("tpool_create failed\n");
exit(1);
}
// if(tpool_create(NUM_THREADS) != 0)
// {
// printf("tpool_create failed\n");
// exit(1);
// }
int new_socket;
struct ARGS *args;
int client_fd, new_socket;
struct sockaddr_in address;
int addrlen = sizeof(address);
client_fd = socket_init();
new_socket = socket_init();
int i = 0;
while (1){
new_socket = accept(client_fd, (struct sockaddr *) &address, (socklen_t *) &addrlen);
args = static_cast<ARGS *>(malloc(sizeof(struct args *)));
args->jvm = &myJvm;
args->socket = new_socket;
struct ARGS *args;
args = static_cast<ARGS *>(malloc(sizeof(struct args *)));
args->jvm = &myJvm;
args->socket = new_socket;
if(pthread_create(&threads[i], nullptr, handle_stream, args) != 0){
perror("pthread_create failed");
exit(EXIT_FAILURE);
}
pthread_join(threads[i++], nullptr);
}
// if ((new_socket = accept(client_fd, (struct sockaddr *) &address, (socklen_t *) &addrlen)) < 0) {
// perror("accept failed");
// exit(EXIT_FAILURE);
// }
//
// struct ARGS *args;
// args = static_cast<ARGS *>(malloc(sizeof(struct args *)));
// args->jvm = &myJvm;
// args->socket = new_socket;
// single thread
// handle_stream(args);
handle_stream(args);
// while (1)
// {
//
//
// tpool_add_work(handle_stream, args);
// close(new_socket);
// }
// only 10 tasks
// int i;
// for(i = 0; i < 10; i++)
// {
......@@ -232,8 +258,7 @@ int main () {
sleep(2);
close(new_socket);
tpool_destroy();
// tpool_destroy();
myJvm.jvm->DestroyJavaVM ();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册